如何获取URL参数并将其传递给Laravel 5.1中的类?
How to get and pass URL parameters to classes in Laravel 5.1?
在 Laravel 5.1 的 Routing 文档中,它似乎没有说明如何获取 URL 参数并将其传递给 类。那么我们应该如何从URLs中获取路由参数呢?
例如,使用 RESTful Resource Controller 更新用户的个人资料,您的应用补丁(POST 实际上)为:
/profile/10
因此,当在 UpdateUserRequest 的 rules() 方法中时,如何从 URL 中获取 ID 10 以验证用户的电子邮件与其他用户的唯一性?
public fnction rules()
{
return [ 'email' => 'uniqie:users,email,'.$id ]
}
如果我dd(Request::all()),它不包含'id' = '10'。
请帮忙。谢谢!
Updates
在 Form Request Validation doc 中,它表示 Laravel 授予您访问 route/URL 参数的权限:
$this->route('id');
但它只适用于非资源路线,如:
Route::post('users/{id}', 'UsersController@store');
不适用于:
Route::resource('users', 'UserController');
那么如何从资源路由中获取和传递路由参数呢?
Return 更新用户请求的 ID:
$id = $this->route('users');
因为 Route:resource 会给你 /users/{users} 而不是 /users/{id}。
您可以通过命令行使用此命令:
php artisan route:list
帮助您列出所有路线。
在 Laravel 5.1 的 Routing 文档中,它似乎没有说明如何获取 URL 参数并将其传递给 类。那么我们应该如何从URLs中获取路由参数呢?
例如,使用 RESTful Resource Controller 更新用户的个人资料,您的应用补丁(POST 实际上)为:
/profile/10
因此,当在 UpdateUserRequest 的 rules() 方法中时,如何从 URL 中获取 ID 10 以验证用户的电子邮件与其他用户的唯一性?
public fnction rules()
{
return [ 'email' => 'uniqie:users,email,'.$id ]
}
如果我dd(Request::all()),它不包含'id' = '10'。 请帮忙。谢谢!
Updates
在 Form Request Validation doc 中,它表示 Laravel 授予您访问 route/URL 参数的权限:
$this->route('id');
但它只适用于非资源路线,如:
Route::post('users/{id}', 'UsersController@store');
不适用于:
Route::resource('users', 'UserController');
那么如何从资源路由中获取和传递路由参数呢?
Return 更新用户请求的 ID:
$id = $this->route('users');
因为 Route:resource 会给你 /users/{users} 而不是 /users/{id}。
您可以通过命令行使用此命令:
php artisan route:list
帮助您列出所有路线。