テーブルのレコード1行ごとに選択肢と文字を入力できるフォームがあります。
バリデーションの条件としては、選択肢が1か2の場合はテキストエリアが必須としたいです。
php
1<form> 2@csrf 3 4@foreach($items as $item) 5 <select name="{{ "sample[$item->id][name]" }}"> 6 <option value="0">なし</option> 7 <option value="1">選択肢1</option> 8 <option value="2">選択肢2</option> 9 </select> 10 <textarea name="{{ "sample[$item->id][message]" }}"></textarea> 11@endforeach 12 13<button type="submit">保存</button> 14</form>
バリデーションを行う前に0を選択したレコードのデータを消しておきたいのですが
以下の方法では消すことができませんでした。
php
1 protected function prepareForValidation() 2 { 3 if ($this->has('sample')) { 4 foreach ($this->input('sample') as $id => $sample) { 5 if (!$sample['item']) { 6 $this->offsetUnset("sample.{$id}"); 7 } 8 } 9 } 10 }
offsetUnsetでitemは消すことができたんですが、item.1
のようにネストした場合は消すことができないのでしょうか?