我不明白为什么这不起作用,我搜索论坛并阅读官方文档,显然我犯了一个愚蠢的错误:
public function rules()
{
$customer = Customer::find($this->customers);
return [
'data.name' => 'required|unique:customers,name,1'
];
}
这是我创建的CustomerUpdateFormRequest,我手动输入规则中为1的客户ID,也包括:'data.name' => 'required|unique:customers,name,'.$customer->id,
问题是它仍然没有通过唯一验证,即使在手动或动态输入客户ID之后,我也会给出客户已存在的错误。
我读了这个http://laravel.com/docs/5.0/validation和https://laracasts.com/discuss/channels/requests/laravel-5-validation-request-how-to-handle-validation-on-update并且我'相信'我的代码是正确的,为什么不工作?
答案 0 :(得分:1)
上面的代码工作得很好,没有语法错误或逻辑,问题出现在数据库中,在创建验证表单之前,有其他客户插入了相同的数据。
我不知道我是否应该删除此问题或将其保留在此处,无论如何,如果您有任何问题,请将代码保留为罚款请检查您的数据库。
谢谢!
答案 1 :(得分:1)
public function rules()
{
$customer= $this->route('customer'); //$this->('route-name')
return [
'data.name' => 'required|unique:customers,name,' . $customer->id
];
}