在Laravel 5.1的Routing文档中,它似乎没有说明如何获取并将URL参数传递给类。那么我们应该如何从URL获取路由参数呢?
例如,使用RESTful Resource Controller更新用户的个人资料,您的应用将PATCH( POST实际)修改为:
/简档/ 10
因此,当在UpdateUserRequest中的rules()方法内部时,如何从URL获取id 10以验证用户的电子邮件是否像其他用户一样唯一?
public fnction rules()
{
return [ 'email' => 'uniqie:users,email,'.$id ]
}
如果我dd(Request :: all()),它不包含'id'='10'。 请帮忙。谢谢!
更新
在Form Request Validation doc中,它说Laravel授予您访问路径/网址参数的权限:
$this->route('id');
但它只适用于非资源路线,如:
Route::post('users/{id}', 'UsersController@store');
不适用于:
Route::resource('users', 'UserController');
那么如何从资源路径获取并传递路由参数?
答案 0 :(得分:2)
将ID返回给UpdateUserRequest:
$id = $this->route('users');
因为Route:资源会为您/ users / {users}而不是/ users / {id}。
您可以通过命令行使用此命令:
php artisan route:list
帮助您列出所有路线。