- ルールクラスを作成する方法 まず、カスタムのバリデーションルールクラスを作成します。以下のコマンドを使用して、新しいルールクラスを作成できます。
php artisan make:rule TwoStrings
上記のコマンドを実行すると、app/Rules/TwoStrings.php
というファイルが作成されます。このファイルを開き、以下のようにpasses
メソッドを実装します。
public function passes($attribute, $value)
{
// 入力値が2つの文字列かどうかをチェックするロジックを実装します
return is_array($value) && count($value) === 2 && is_string($value[0]) && is_string($value[1]);
}
- バリデーションルールの定義と使用方法 次に、作成したバリデーションルールを定義し、使用します。以下の手順に従ってください。
まず、resources/lang/ja/validation.php
ファイルを開き、以下のように新しいエントリを追加します。
'custom' => [
'two_strings' => '2つの文字列を指定してください。',
],
次に、バリデーションルールを定義します。app/Http/Requests
ディレクトリにある適切なフォームリクエストクラスを開き、rules
メソッドを以下のように更新します。
use App\Rules\TwoStrings;
public function rules()
{
return [
'strings' => ['required', 'array', new TwoStrings],
];
}
最後に、バリデーションエラーメッセージを表示するビューファイルに、以下のようにエラーメッセージを追加します。
@if ($errors->has('strings'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('strings') }}</strong>
</span>
@endif
これで、指定したフォームフィールドに2つの文字列以外の入力がある場合、バリデーションエラーメッセージが表示されます。
以上が、Laravelでバリデーションを追加して、2つの文字列のみを受け入れる方法です。この方法を使って、入力データを適切に検証できます。必要に応じてカスタマイズしてください。