Laravel開発では、フォームデータ検証が重要な部分であり、一般的なニーズの1つは、データベース内のフィールドの価値が一意であることを確認することです。 Laravelは、この機能を迅速に実装するための独自の検証ルールを提供します。
フィールドの一意性を確認する必要がある場合は、検証ルールに固有のものを直接追加できます。たとえば
$request->validate([
'email' => 'unique:users',
]);
このルールでは、ユーザーテーブルの電子メール列の値が既に存在するかどうか、および繰り返された場合、検証エラーが返されます。
ユーザー情報を更新するときは、元のメールアドレスを保持する必要がある場合があります。現時点では、現在のレコードのIDを一意のルールに追加することで、自分自身を除外できます。
$request->validate([
'email' => 'unique:users,email,' . $user->id,
]);
この検証では、ID $ user-> IDを使用したレコードが無視され、他のレコードでは一意のチェックのみが実行されます。
パスワード登録または変更が登録されているシナリオでは、ユーザーは通常、入力が正しいことを確認するために2回パスワードを入力するように求められます。 Laravelは、この要件を簡素化するために確認されたルールを提供します。
たとえば、フィールド検証ルールに確認されたことを追加するだけです。
$request->validate([
'password' => 'required|confirmed',
]);
このルールは、パスワードフィールドとPassword_Confirmationフィールドの値が一貫しているかどうかを自動的に確認します。それらが一貫性がない場合、エラーがプロンプトされます。
パスワードの変更関数を実装する場合、新しいパスワードを確認することに加えて、ユーザーが入力した古いパスワードが正しいことを確認し、新しいパスワードにセキュリティ制限を課すことも必要です。
パスワードの変更の比較的完全な例は次のとおりです。
$request->validate([
'old_password' => 'required',
'new_password' => 'required|min:8|different:old_password',
'confirm_password' => 'required|same:new_password',
]);
で:
上記のルールを通じて、パスワード変更プロセスのセキュリティを効果的に改善し、ユーザーは誤操作を減らすことができます。