Laravel唯一名称,但如果id相同

时间:2016-11-11 22:08:51

标签: php forms laravel validation

我正在努力学习laravel。 现在我有一个有效的表格。我可以创建,我可以更新数据。

但我有一个特例。我正在添加一个名字的数据。 我希望这个名字只能使用一次。因此我使用的是独特的功能。 当我创造新事物时,这工作正常。但是,当我更新数据,并且我不更改名称时,它会给我一个错误,因为名称存在(但它的条目相同)。

所以现在,我想验证是否采用了名称,但是如果id相同则可以更新。

我怎么能在laravel中做到这一点?

1 个答案:

答案 0 :(得分:3)

如文档中所述,您可以使用Illuminate\Validation\Rule类创建规则对象以与其他规则一起使用。 Rule对象具有ignore()方法:

use Illuminate\Validation\Rule;

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

请参阅"强制使用唯一规则忽略给定ID":

https://laravel.com/docs/master/validation#rule-unique