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的存在。