Laravel:在 FormRequest 规则上获取 ID

Laravel: Get ID on a FormRequest Rule

我创建了一个规则来检查电子邮件是否已经存在,只有当字段被更改时。

$rules = [
    'user-name'      => 'required',
    'user-email'     => [
        'required',
        'email',
        Rule::unique('users', 'email')->ignore(ID)
    ],
];

但是我需要告知用户ID。我怎样才能获取这些信息?

Route::resource('users', 'UsersController')->middleware('permission:create users');

在您的表单请求中,您可以访问经过身份验证的用户,因此您可以使用:

$this->user()->id

--- 编辑

从 url 获取 ID:

request()->route('id')

-- 第二次尝试

$this->route('user')

或者使用 php artisan route:list 和 url 上使用的任何内容作为 {user}{id} 打印出来,这就是您需要使用的内容。

试试这个代码

$id = app('request')->segment(2);

我不确定,但可以工作

$id = app('request')->user_id

请尝试此代码。我正在使用此代码在更新数据时获取 request-id,它适用于我。

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