Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel中使用Http\Request更新唯一字段时执行验证_Php_Validation_Laravel 5.1 - Fatal编程技术网

Php 如何在Laravel中使用Http\Request更新唯一字段时执行验证

Php 如何在Laravel中使用Http\Request更新唯一字段时执行验证,php,validation,laravel-5.1,Php,Validation,Laravel 5.1,我有一个customers表,我使用CustomerRequest通过规则功能验证字段。该表有一个email字段,该字段是必需的,并且是唯一的。当我创建客户时,这可以正常工作,但是当我更新客户信息时(比如说我把他们的姓氏拼错了),我的请求失败,因为电子邮件地址已经在数据库中 这是我的客户请求: public function rules() { return [ 'givenname' => 'required', 'surname' => '

我有一个
customers
表,我使用
CustomerRequest
通过
规则
功能验证字段。该表有一个
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'),
];
}

只是想知道:如果没有
customer\u id
作为请求传递,该怎么办?那么解决方案应该是什么?如果没有客户id,则此请求必须用于新插入,如果找到,则必须用于更新。在这里,laravel将处理客户id的存在。