【发布时间】:2016-02-16 19:27:35
【问题描述】:
我有以下问题。我正在使用 php 和 laravel 5.0.33 开发一个网站。我有一台开发机器和一个 Web 服务器。
现在,我通过覆盖AuthenticatesAndRegistersUsers postRegister 方法来拦截注册过程,但没有运气,因为拦截不是在服务器上执行的,在我的本地环境中一切都按预期工作。
我还在我的 AuthController 的 postRegister 方法上添加了一个die();,该方法覆盖了在提到的 trait 上定义的方法,并且永远不会到达该行。
\Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers 上的原始特征方法:
public function postRegister(Request $request) {
$validator = $this->registrar->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$this->auth->login($this->registrar->create($request->all()));
return redirect($this->redirectPath());
}
我在 \Project\Http\Controllers\Auth\AuthController 上的 AuthController 中重写的方法:
use AuthenticatesAndRegistersUsers;
//Override of the register process
public function postRegister(\Illuminate\Http\Request $request) {
die ('aqui');
}
那么,是什么阻止了代码进入我的覆盖方法? 在我的本地开发机器和服务器中,php版本都是相同的。
编辑: 坏消息是,如果我尝试在网站上登录用户,则会发生相同的行为,登录无法作为注册。请求永远不会到达控制器。这花了我一整天的时间....:(。在登录时我还覆盖了一个方法。
【问题讨论】:
-
想不出为什么会发生这种情况,除了缓存的路由。在本地和服务器机器上运行
php artisan route:list并粘贴到这里。 -
@BharatGeleda 路由很好,两个清单显示身份验证路由重定向到正确的控制器和操作。就像身份验证失败一样。
-
你能路由到你的 AuthController 上的其他方法吗?我怀疑什么都无法访问您的 AuthController
-
@Jessedc 是的,确实,我可以显示登录页面、恢复密码页面、注册页面....问题是我认为使用 POST 方法。但是这些路线没有受到影响,它们与 laravel 开箱即用的路线相同。
-
看看artisan命令。
php artisan一切都列出来了。
标签: php laravel laravel-5 traits