使用路由参数时找不到控制器方法


Controller method not found when using route parameters

我正在尝试构建一个应用程序,强制用户在注册时确认他们的电子邮件。我发送了一封电子邮件,其中包含如下链接:

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");
}

我完全不知道为什么会发生这种情况。我以为可能是其他路线干扰,但事实证明并非如此。

对我来说,这是相当新的东西,所以我可以想象我在代码中犯了一个新手错误。

提前谢谢。

路由和控制器方法名称中的方法名称存在拼写错误

在路由中,方法名称为

@mailConformation

但是在您的控制器中,您的方法名称是

mailConfirmation($code,$username)

因此,将路由中方法名称的拼写更正为:

Route::get('/verifieren/{{ confirmation_code }}&user={{ username }}', 'Authentication'AuthenticationController@mailConfirmation');

更改

http://localhost:8000/verifieren/TOKEN&user=USERNAME

http://localhost:8000/verifieren/TOKEN?user=USERNAME

您正在起诉 &而不是 ?

此外,路由中的方法名称是"

mailConformation",控制器中的方法名称是"mailConfirmation"

改变

'Authentication'AuthenticationController@mailConformation' 

'Authentication'AuthenticationController@mailConfirmation'

在您的路线中