我正在尝试创建自己的自定义验证电子邮件,但似乎我在某个地方有错。该路线运行良好,但是当我在某处遇到带有“/”斜线的散列令牌时,它说找不到。我怎样才能避免这种情况?创建令牌$permission = new Permission();$permission->user()->associate($isPermitted_user);$permission->token = Hash::make(now());$permission->save();创建我的网址$permission = Permission::find($this->permission_id); $permission_url = url('/permission/'.$permission->token); $user = $permission->user; $data = array( 'permission_url' => $permission_url, 'name' => $notifiable->name, 'user' => $user, );网页.php Route::get('/permission/{token}', 'PermissionsController@permission')->middleware('verified');
2 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
来自 Laravel 关于编码正斜杠的文档。
编码正斜杠
Laravel 路由组件允许除 / 之外的所有字符。您必须使用 where 条件正则表达式明确允许 / 成为占位符的一部分:
Route::get('search/{search}', function ($search) { return $search; })->where('search', '.*');
这意味着在您的情况下允许“/”成为占位符的一部分,您需要在令牌参数上使用 where 路由条件正则表达式:
Route::get('/permission/{token}', 'PermissionsController@permission')->middleware('token')->where('token', '.*');
Inspired by the comment by lagbox
- 2 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消