更新時使用唯一約束重新驗證Laravel 模型
使用強制執行唯一驗證規則的Laravel Eloquent 模型時,更新模型可以觸發驗證如果修改的值與現有記錄匹配,則會出現錯誤。為了解決這個問題,開發人員經常在更新時重新驗證模型的屬性。但是,這種方法可能會導致所需的規則驗證出現問題。
在提供的範例中,儲存庫中的 update 方法使用 validate 方法驗證模型的屬性。但是,此驗證會應用與建立新模型相同的獨特規則。因此,使用現有值更新模型會導致驗證失敗。
要解決此問題,您可以自訂驗證規則以忽略正在更新的實例的 id。
自訂驗證規則:
<code class="php">$user = $this->findById($id); $user->fill($data); $this->validate($user->toArray(), ['id' => $user->id]);</code>
<code class="php">// Validation rules 'username' => Validator::make($data, [ 'username' => 'required|unique:users,username,' . ($id ?? null), ]);</code>
<code class="php">'username' => 'required|unique:users,username,' . ($id ?? null),</code>
<code class="php">'username' => 'required|unique:users,username',</code>
以上是如何在更新期間使用獨特約束重新驗證 Laravel 模型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!