簡體   English   中英

如何解決 laravel 中的唯一字段錯誤?

[英]how can i solve the unique field error in laravel?

'call_signs' => [
    'required', 'array', 'min:1',
    'call_signs.*.call_sign' => [
        Rule::unique('call_signs', 'call_sign')->whereNull('deleted_at')->ignore($user->id, 'user_id')
    ]
],

這是我的唯一代碼,它給了我錯誤

call_signs 是一個數組

BadMethodCallException 方法 Illuminate\Validation\Validator::validateUnique:callSigns,callSign,"12",userId,deletedAt,"NULL" 不存在。

我的 Callsign 表有 softDelete

Laravel 的唯一驗證規則僅提供ignore方法,不提供whereNull方法。 請注意whereNull方法是 Database Query Builder 的一部分。

此外,檢查表上軟刪除的唯一性通常也不好。 您應該考慮對此類用例使用硬刪除。

無論如何,如果您出於某種原因想要使用,您可以創建自己獨特的自定義驗證規則。 您可以在此處閱讀更多相關信息,也包含示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM