php - Laravel 控制器中如何调用其他方法
黄舟
黄舟 2017-04-10 15:39:09
[PHP讨论组]
phpRoute::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来的参数也没法传递过去,请问怎么办?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
高洛峰

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号