-
ルールの無視: Laravelのバリデーションルールには、第三引数として無視するレコードのIDまたは値を指定することができます。例えば、以下のようなルールを定義します。
'email' => 'unique:users,email_address,'.$user->id.',user_id'
上記の例では、
users
テーブルのemail_address
カラムで一意性をチェックしますが、user_id
が$user->id
と等しいレコードは無視されます。 -
クエリビルダを使用: もう一つの方法は、クエリビルダを使用して一意性のチェックを行うことです。例えば、以下のようなコードを使用します。
use Illuminate\Validation\Rule; $validator = Validator::make($request->all(), [ 'email' => [ Rule::unique('users')->ignore($user->id, 'user_id') ] ]);
上記の例では、
users
テーブルのemail
カラムで一意性をチェックしますが、user_id
が$user->id
と等しいレコードは無視されます。
これらは、Laravelで「unique」ルールを無視して一意性のバリデーションを行うための一般的な方法です。必要に応じて、データベースの構造や要件に応じて適切な方法を選択してください。