如何获取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

帮助您列出所有路线。