Validation 如何获取URL参数并将其传递给Laravel 5.1中的类?

Validation 如何获取URL参数并将其传递给Laravel 5.1中的类?,validation,laravel-5,url-parameters,Validation,Laravel 5,Url Parameters,在Laravel5.1的文档中,似乎没有说明如何获取URL参数并将其传递给类。那么我们应该如何从URL获取路由参数呢 例如,使用更新用户配置文件时,您的应用程序补丁(实际发布)将: /个人资料/10 因此,在UpdateUserRequest中的rules()方法中,如何从URL中获取id 10以验证用户的电子邮件是否与其他用户的电子邮件相同 public fnction rules() { return [ 'email' => 'uniqie:users,email,'.$id

在Laravel5.1的文档中,似乎没有说明如何获取URL参数并将其传递给类。那么我们应该如何从URL获取路由参数呢

例如,使用更新用户配置文件时,您的应用程序补丁(实际发布)将:

/个人资料/10

因此,在UpdateUserRequest中的rules()方法中,如何从URL中获取id 10以验证用户的电子邮件是否与其他用户的电子邮件相同

public fnction rules()
{
    return [ 'email' => 'uniqie:users,email,'.$id ]
}
如果我dd(Request::all()),则它不包含'id'='10'。 请帮忙。谢谢大家!

更新

在中,它说Laravel授予您访问路由/URL参数的权限,包括:

$this->route('id');
但它仅适用于非资源路由,如:

Route::post('users/{id}', 'UsersController@store');
它不适用于:

Route::resource('users', 'UserController');

那么如何从资源路由获取和传递路由参数呢?

将id返回到UpdateUserRequest:

$id = $this->route('users');
因为Route:resource将为您提供/users/{users},而不是/users/{id}

您可以通过命令行使用此命令:

php artisan route:list

以帮助您获得所有路线的列表。

谢谢。但我的问题是将$id参数传递给UpdateUserRequest类中的Laravel的rule()方法。当我dd(Request::all())时,该id不包括在请求中。那么,您如何从URL(如:/profile/10)获取请求的id参数呢?其中10是要更新的用户id。请尝试此操作。在控制器的第一个参数$id处使用公共函数。例如:公共函数foocontroller($id,ProfileRequest$request)是的,已经是这样了。问题是将id传递给ProfileRequest类,该类包含rule()方法,我想在其中使用id in.ok。现在这个。希望它能起作用:$id=Route::input('id');将其放在UpdateUserRequestNope返回[]之前。这也不行。Laravel 5.1返回此错误:“未找到类'App\Http\Requests\Route'。我在评论中也提到了这个错误