【问题标题】:Laravel 9 and Livewire Validation for Unique Unless UpdatingLaravel 9 和 Livewire 唯一性验证,除非更新
【发布时间】:2022-11-10 11:45:58
【问题描述】:

以下验证在创建新记录时有效,但在更新记录时,partner_codeseedgens_codeunique 验证捕获。如果未更改,如何允许使用相同的值更新记录,但在值发生更改时仍验证唯一性?

$this->validate(
    [
        'partner_code' => 'required|unique:varieties',
        'seedgens_code' => 'required|unique:varieties',
    ],
    [
        'partner_code.required' => 'Please add a partner code.',
        'partner_code.unique' => 'Partner code must be unique.',
        'seedgens_code.required' => 'Please add a unique partner code.',
        'seedgens_code.unique' => 'SeedGens code must be unique.',
    ],
);

【问题讨论】:

标签: php laravel laravel-livewire


【解决方案1】:
'partner_code' => 'required|unique:varieties,' . $id

或者

'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]

其中$id 是您要忽略的 ID。

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

【讨论】:

  • 'partner_code' => ['required', Rule::unique('varieties')->ignore($id)] 工作得很好!
【解决方案2】:
(1) protected $rules=[
    'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]
    ....
]

(2) protected function rules(){
    'partner_code' => ['required', Rule::unique('varieties')->ignore($id)]
    ...
}

我在 (1) 中添加规则不起作用 我在(2)中添加规则正在工作!

【讨论】:

    猜你喜欢
    • 2014-08-20
    • 2018-07-17
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 2019-02-26
    • 2020-09-13
    相关资源
    最近更新 更多