Как мы можем проверить поля формы, которые являются массивами? Взгляните на следующий код
Модель UserPhone:
public static $rules= array(
'phonenumber'=>'required|numeric',
'isPrimary'=>'in:0,1'
)
...........
UserController:
$validation = UserPhone::validate(Input::only('phonenumber')));
if($validation->passes())
{
$allInputs = Input::only('phonenumber','tid');
$loopSize = sizeOf($allInputs);
for($i=0;$i<$loopSize;$i++)
{
$phone = UserPhone::find($allInputs['tid'][$i]);
$phone->phonenumber = $allInputs['phonenumber'][$i];
$phone->save();
}
return Redirect::to('myprofile')->with('message','Update OK');
}
else
{
return Redirect::to('editPhone')->withErrors($validation);
}
}
$validation
происходит от BaseModel, который расширяет яркость.
На мой взгляд:
<?php $counter=1; ?>
@foreach($phones as $thephone)
<section class="col col-12">
<label class="label">Phone Number {{$counter++}}</label>
<label class="input">
<i class="icon-append icon-phone"></i>
{{Form::text('phonenumber[]',$thephone->phonenumber)}}
{{Form::hidden('tid[]',$thephone->id)}}
</label>
</section>
@endforeach
Все работает нормально, и я получаю все номера телефонов, которые я хочу в Форме обновления, но я не могу обновить модель, потому что проверка не выполняется с сообщением "Номер телефона должен быть числом".
Я знаю, что нет простого решения для проверки полей формы массива, и я попытался расширить класс проверки, но без успеха.
Как я могу проверить такие поля?