【发布时间】:2017-03-29 19:58:27
【问题描述】:
我使用的是 laravel 5.4
routes/web.php [路线]
Route::get('/email-confirmation/{token}', ['uses' => 'Components\ConfirmationController@sendEmailConfirmation', 'as' => 'web.email.confirmation']);
组件/ConfirmationController.php [控制器]
public function sendEmailConfirmation(EmailConfirmationRequest $request)
{
dd($request->input('token'));
// ouput is empty
}
// 我知道,路由所需参数是通过作为第二个参数传入来访问的
EmailConfirmationRequest.php [请求]
public function rules()
{
return ['token' => 'required|max:3'];
}
网址:/email-confirmation/hello - 未验证
所以,它无法验证请求中的token参数。
我不确定,我做错了什么。
【问题讨论】:
-
我认为这是因为您正在尝试验证路由参数并且 dd 正在尝试访问请求参数:/email-confirmation/{token} 是路由参数。您可能想通过发布到控制器中的 /email-confirmation/1?token=test 和 dd($request->all()) 来检查这一点
-
您必须决定是否希望
token成为路由参数或 GET/POST 输入,在第一种情况下,在 $request 参数之后的操作调用中注入并且您无法验证它,在第二种情况下是在request()->input('token),你可以验证。
标签: laravel validation