セレクトボックスの正規表現非マッチ時にエラーメッセージを返したい
動的なフォームで作成しています
セレクトボックスのvalueが「no」の時にバリデーションエラーを返したい
HTML
1@foreach(old('name') as $key => $value) 2<div class="form-group"> 3 <span class="input-icon"><i class="fas fa-users"></i></span> 4 <select class='relationship w-100 @error("relations.$key") is-invalid @enderror' name="relations[]" id="relations[]" required> 5 <option disabled="disabled"value="no" {{ (old("relations.$key","no") == 'no') ? "selected":"" }}>続柄</option> 6 <option value="father" {{ (old("relations.$key") == 'father') ? "selected":"" }}>父</option> 7 <option value="mother" {{ (old("relations.$key") == 'mother') ? "selected":"" }}>母</option> 8 </select> 9 @error("relations.$key") 10 <span class="invalid-feedback" role="alert"> 11 <strong>{{ $message }}</strong> 12 </span> 13 @enderror 14</div> 15@endforeach
PHP
1return Validator::make($data, [ 2 'relations.*' => ['not_regex:/^no/'], 3],[ 4 'relations.*.not_regex' => "選択してください", 5 6]);
@foreach(old('name') as $key => $value)
この記述は何の意図で書いているのですか?
セレクトボックスのほかにもフォーム部品があり、名前欄の古いデータの数に応じてフォームの部品を復元させてます。記述もれすみません
<div class="form-group">
<span class="input-icon"><i class="fa fa-user"></i></span>
<input class='form-control @error("name.$key") is-invalid @enderror' name="name[]" id="name[]" value='{{ old("name.$key") }}' type="text" placeholder="なまえ" required>
@error("name.$key")
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
それならば old('name') で取得できる配列の値を提示してもらわないと・・・
あなたの回答
tips
プレビュー