您好,欢迎访问一九零五行业门户网

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

phproute::controller('user','usercontroller');//usercontroller.php//www.test.com/user/regfunction postreg(){}//www.test.com/user/loginfunction postlogin(){ if(reg) { //判断登陆密码 } esle { $this-> postreg();//把传递过来的参数去注册 }}

当访问www.test.com/user/login的时候如果木有注册,需要调用postreg方法注册,但是$this->postreg()这是get方法,而且post来的参数也没法传递过去,请问怎么办?
回复内容: phproute::controller('user','usercontroller');//usercontroller.php//www.test.com/user/regfunction postreg(){}//www.test.com/user/loginfunction 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 调用,你想在哪里调都可以。验证注册信息的方法也可以放到那个类中。
其实你需要的就是代码复用。
其它类似信息

推荐信息