如何在Laravel中使用HttpRequest更新唯一字段时执行验证


How to perform validation when updating a unique field using HttpRequest in Laravel

我有一个customers表,我使用CustomerRequest通过使用rules函数来验证字段。该表有一个email字段,该字段是必需的并且是唯一的。当我创建客户时,这很好,但当我更新客户信息时(假设我把他们的姓氏拼写错了),我的请求失败了,因为email地址已经在数据库中了。

这是我的客户请求:

public function rules()
{
    return [
        'givenname' => 'required',
        'surname' => 'required',
        'email' => 'required|unique:customers,email',
    ];
}

我想为所有客户重新使用CustomerRequest,我该怎么做?

您需要在此处检查请求类型和客户id以进行更新,然后根据请求返回规则。像这样的

public function rules(Request $customer_request)
{
return [
    'givenname' => 'required',
    'surname' => 'required',
    'email' => 'required|unique:customers,email,'.$customer_request->get('customer_id'),
];
}