Laravel 控制器中如何调用其他方法
程序员文章站
2022-06-09 23:34:42
...
php
Route::controller('user','UserController'); //UserController.php //www.test.com/user/reg function postReg(){ } //www.test.com/user/login function postLogin(){ if(reg) { //判断登陆密码 } esle { $this-> postReg();//把传递过来的参数去注册 } }
当访问www.test.com/user/login的时候如果木有注册,需要调用postReg方法注册,但是$this->postReg()这是get方法,而且post来的参数也没法传递过去,请问怎么办?
回复内容:
php
Route::controller('user','UserController'); //UserController.php //www.test.com/user/reg function postReg(){ } //www.test.com/user/login function postLogin(){ if(reg) { //判断登陆密码 } esle { $this-> postReg();//把传递过来的参数去注册 } }
当访问www.test.com/user/login的时候如果木有注册,需要调用postReg方法注册,但是$this->postReg()这是get方法,而且post来的参数也没法传递过去,请问怎么办?
用户去登录,你发现用户没有账号,自动帮忙注册,你家产品经理同意这个逻辑吗?万一用户提交的信息有误哩?比如密码搞错了。你还是得有个注册页面,让用户自己注册的。
在一个 Action 中请求另外一个 Action 这种做法不合理。当然也是可以做到的:
postReg 是一个 HTTP 请求地址,你可以在 postLogin 中模拟 HTTP 请求 postReg,比如使用 curl。
还有个做法比较合理,定义个方法或类 createUser($data)
,这个方法在 postReg 中可以调用,也可以在 postLogin 调用,你想在哪里调都可以。验证注册信息的方法也可以放到那个类中。
其实你需要的就是代码复用。
推荐阅读
-
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
-
Mybaits 源码解析 (六)----- 全网最详细:Select 语句的执行过程分析(上篇)(Mapper方法是如何调用到XML中的SQL的?)
-
laravel框架中控制器的创建和使用方法分析
-
JSP中如何通过JSP调用类(.java)中的方法
-
在java中main函数如何调用外部非static方法
-
Laravel控制器间调用方法
-
JavaScript中如何调用Java方法
-
在SpringBoot中,如何使用Netty实现远程调用方法总结
-
laravel5 在模板中如何不通过控制器传送变量方式获取访问的路由?
-
php中调用其他系统http接口的方法说明