忽略更新表单中的类别

时间:2016-12-16 18:58:18

标签: php laravel laravel-5

我正在更新一个类别名称,但我需要是唯一的,并且大小写是当前记录让它更新,但它不能用于我的验证。

示例:

 $this->validate($request, array(
                'category'         => 'required|unique:categories,name,:id|min:2'
         ));

1 个答案:

答案 0 :(得分:1)

来自unique()规则说明:

  

有时,您可能希望在唯一检查期间忽略给定的ID。例如,考虑一个“更新配置文件”屏幕,其中包括用户的名称,电子邮件地址和位置。当然,您需要验证电子邮件地址是否唯一。但是,如果用户只更改名称字段而不是电子邮件字段,则不希望抛出验证错误,因为用户已经是电子邮件地址的所有者。

     

为了指示验证者忽略用户的ID,我们将使用Rule类来流畅地定义规则。在此示例中,我们还将验证规则指定为数组,而不是使用|用于划分规则的字符:

use Illuminate\Validation\Rule;

Validator::make($data, [
    'email' => [
        'required',
        Rule::unique('users')->ignore($user->id),
    ],
]);