- ルールの作成:
まず、バリデーションルールを作成する必要があります。Laravelでは、
unique
ルールを使用してメールアドレスの一意性を検証します。以下は、rules
メソッド内でルールを定義する例です。
public function rules()
{
return [
'email' => 'required|email|unique:users,email',
];
}
上記の例では、email
フィールドが必須であり、有効なメールアドレス形式であることを確認します。さらに、users
テーブルのemail
カラムとの一意性を検証します。
- エラーメッセージのカスタマイズ:
もしバリデーションに失敗した場合、デフォルトのエラーメッセージが表示されます。エラーメッセージをカスタマイズするには、
resources/lang
ディレクトリ内にある言語ファイルを編集します。例えば、resources/lang/ja/validation.php
ファイルを開いて、以下のように編集します。
'unique' => ':attributeは既に使用されています。',
このようにすることで、一意性のバリデーションに失敗した場合に表示されるエラーメッセージがカスタマイズされます。
- フォームでの使用:
作成したバリデーションルールをフォームで使用するには、
FormRequest
クラスを作成する必要があります。以下は、FormRequest
クラスの例です。
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class MyFormRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'email' => 'required|email|unique:users,email',
];
}
}
フォームリクエストクラスを使用することで、コントローラで受信したリクエストをバリデーションすることができます。
以上が、Laravelで一意のメールアドレスをバリデーションする方法です。これにより、重複したメールアドレスをデータベースに保存することを防ぐことができます。