Heim > Backend-Entwicklung > PHP-Tutorial > Laravel 控制器中如何调用其他方法

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

WBOY
Freigeben: 2016-06-06 20:34:00
Original
2137 Leute haben es durchsucht

<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>
Nach dem Login kopieren
Nach dem Login kopieren

当访问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>
Nach dem Login kopieren
Nach dem Login kopieren

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

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

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

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

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

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage