Laravel возвращает старый ввод массива флажков

Изменить: мой $id содержит массив

@php($ids = array('Fruit','Vegetables')

Я просто хочу отобразить старый ввод моего флажка и текстовой области, когда страница возвращается с ошибками на основе моих проверок. Вот элементы формы. Я пытался использовать старый (метод), но он не работает для меня.

<form method = "post" action = "tomyController">
<input type = "text" name = "vendor" >
@foreach($ids as $id)
<input type = "checkbox" name = "check[{{$id}}][0]" value = "0">
<input type = "checkbox" name = "check[{{$id}}][1]" value = "1">
<textarea name = "remarks[{{id}}]"></textarea>
@endforeach
</form>

Я попробовал Как показать старые данные флажка в Laravel? но у меня не сработало. Вот как я это реализовал.

<form method = "post" action = "tomyController">
@foreach($ids as $id)
<input type = "checkbox" name = "check[{{$id}}][0]" value = "0" 
@if(is_array(old('check[$id][0]')) && in_array(0, old('check[$id][0]'))) checked @endif)>
<input type = "checkbox" name = "check[{{$id}}][1]" value = "1" 
@if(is_array(old('check[$id][1]')) && in_array(1, old('check[$id][1]'))) checked @endif)>
<textarea name = "remarks[{{id}}]">{{ old('remarks[$id]') }}</textarea>
@endforeach
</form>

Мой код контроллера здесь.

public function store(Request $request) {
$post    = $request->all();
$validator = Validator::make($request->all(), [
"vendor" => "required",
]);
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput($post);
}
else
#my other codes
}

dd($request)


person jerome    schedule 23.01.2018    source источник


Ответы (1)


Измените свой form на следующее:

   <form method = "post" action = "tomyController">
                    @foreach($ids as $id)
                        <input type = "checkbox" name = "check[{{$id}}][0]" value = "0"
                               @if(is_array(old('check['.$id.']')) && (0==old('check['.$id.'][0]'))) checked @endif>
                        <input type = "checkbox" name = "check[{{$id}}][1]" value = "1"
                               @if(is_array(old('check['.$id.']')) && (1== old('check['.$id.'][1]'))) checked @endif>
                        <textarea name = "remarks[{{$id}}]">{{ old('remarks['.$id.']') }}</textarea>
                    @endforeach
                </form>
person Sohel0415    schedule 23.01.2018
comment
не могли бы вы показать, что происходит после добавления этого в ваш код, как и при любой ошибке ?? если нет ошибки, то показать html-страницу из исходного кода браузера - person Sohel0415; 23.01.2018
comment
не это, ваш исходный код сгенерировал html и что должен показать ваш вывод ?? - person Sohel0415; 23.01.2018
comment
Что вы имеете в виду, сгенерированный исходным кодом html? Выход был бы такой. Если поле поставщика оставить пустым, то при отправке программа покажет сообщение об ошибке и запомнит предыдущие вводы пользователей, которые будут автоматически введены в поля. - person jerome; 23.01.2018
comment
щелкните правой кнопкой мыши на странице и выберите «Просмотр исходного кода страницы», и ваш старый ввод работает, я думаю, поскольку ваши флажки отмечены на представлении, которое вы даете - person Sohel0415; 23.01.2018
comment
ibb.co/bLacdb я просто ставлю галочки, когда делаю снимок экрана - person jerome; 23.01.2018