ホームページ >バックエンド開発 >PHPチュートリアル >更新中に独自の制約を使用して Laravel モデルを再検証するにはどうすればよいですか?
更新中に固有の制約を使用して 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>
このカスタマイズを組み込むことで、フレームワークは既存の ID の一意の制約を無視し、重複による検証エラーを引き起こすことなくモデルを更新できるようになります。フィールド値。
以上が更新中に独自の制約を使用して Laravel モデルを再検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。