我正在尝试构建一个应用程序,强制用户在注册时确认他们的电子邮件地址。我发送了一封电子邮件,其中包含以下链接:
http://localhost:8000/verifieren/TOKEN&user=USERNAME
现在,当我尝试访问此链接时,屏幕上会弹出以下错误:
NotFoundHttpException in Controller.php line 91:
Controller method not found.
从堆栈跟踪中,我得到以下
at Controller->missingMethod(array('verifieren', 'GILDE-jOWPBRhcOW1fUFg77xnb0kgM22CUm4&user=Wesley'))
我认为这意味着它试图将verifieren
作为方法调用?
这是我正在使用的路线:
Route::get('/verifieren/{{ confirmation_code }}&user={{ username }}', 'Authentication\AuthenticationController@mailConformation');
该路线对应于以下方法:
public function mailConfirmation($code, $username) {
$user = User::where(["confirmation_code" => $code, "username" => $username])->first();
$user->active = '1';
$user->confirmation_code = null;
$user->active_date = date('Y-m-d');
$user->save();
return redirect('/welkom')->with("flash_notice", "account_succesfully_activated");
}
我完全不知道为什么会这样。我认为可能是其他路线干扰,但事实证明并非如此。
对我来说,这是一个很新的东西,所以我可以想象我在代码中犯了一个菜鸟错误。
提前致谢。
答案 0 :(得分:1)
路径和控制器方法名称中存在方法名称的拼写错误
在您的路线中,您将方法名称设为
@mailConformation
但是在您的Controller中,您的方法名称是
mailConfirmation($code,$username)
因此,请将路线中方法名称的拼写更正为:
Route::get('/verifieren/{{ confirmation_code }}&user={{ username }}', 'Authentication\AuthenticationController@mailConfirmation');
答案 1 :(得分:0)
更改
http://localhost:8000/verifieren/TOKEN&user=USERNAME
到
http://localhost:8000/verifieren/TOKEN?user=USERNAME
你在起诉&而不是?
此外,路线中的方法名称为" mailConformation"并且您的控制器中的方法名称是" mailConfirmation"
更改
'Authentication\AuthenticationController@mailConformation'
到
'Authentication\AuthenticationController@mailConfirmation'
在你的路线