首页 >后端开发 >php教程 >Laravel 控制器中如何调用其他方法

Laravel 控制器中如何调用其他方法

WBOY
WBOY原创
2016-06-06 20:34:002136浏览

<code>php</code><code>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();//把传递过来的参数去注册
   }
}

</code>

当访问www.test.com/user/login的时候如果木有注册,需要调用postReg方法注册,但是$this->postReg()这是get方法,而且post来的参数也没法传递过去,请问怎么办?

回复内容:

<code>php</code><code>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();//把传递过来的参数去注册
   }
}

</code>

当访问www.test.com/user/login的时候如果木有注册,需要调用postReg方法注册,但是$this->postReg()这是get方法,而且post来的参数也没法传递过去,请问怎么办?

用户去登录,你发现用户没有账号,自动帮忙注册,你家产品经理同意这个逻辑吗?万一用户提交的信息有误哩?比如密码搞错了。你还是得有个注册页面,让用户自己注册的。

在一个 Action 中请求另外一个 Action 这种做法不合理。当然也是可以做到的:
postReg 是一个 HTTP 请求地址,你可以在 postLogin 中模拟 HTTP 请求 postReg,比如使用 curl。

还有个做法比较合理,定义个方法或类 createUser($data),这个方法在 postReg 中可以调用,也可以在 postLogin 调用,你想在哪里调都可以。验证注册信息的方法也可以放到那个类中。

其实你需要的就是代码复用。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn