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

问题描述 投票:0回答:2

在 Laravel 5.1 的 Routing 文档中,似乎没有告诉如何获取 URL 参数并将其传递给类。那么我们应该如何从URL中获取路由参数呢?

例如,使用 RESTful 资源控制器 更新用户的个人资料,您的应用程序将修补(POST 实际上)到:

/个人资料/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');

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

validation laravel-5 url-parameters
2个回答
2
投票

将 id 返回给 UpdateUserRequest:

$id = $this->route('users');

因为 Route:resource 会给你 /users/{users} 而不是 /users/{id}。

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

php artisan route:list

帮助您列出所有路线。


0
投票

如果您使用资源路由,请尝试此操作

$id = 路线::输入('用户');

© www.soinside.com 2019 - 2024. All rights reserved.