У меня есть это в моем файле лезвия:
{{ Form::open(['route' => 'my_route_name']) }}
<button type = "submit" class = "btn btn-sm btn-success">
<i class = "fa fa-file-excel-o" aria-hidden = "true"></i> Download
</button>
{{ Form::hidden('my_ids', $my_ids) }}
{{ Form::close() }}
Проверяя режим разработчика Chrome, значение моего скрытого текстового поля с именем my_ids:
[1,2,3,4,5,6]
После нажатия кнопки Скачать на моем контроллере появляется:
$results= Model::whereIn('id', $request->my_ids)->get();
Здесь я получаю сообщение об ошибке.
DD-ing dd($request->my_ids) на моем контроллере дает мне "[1,2,3,4,5,6]".
Однако, если я просто помещу значения непосредственно в красноречивый запрос, как показано ниже, это сработает.
$results= Model::whereIn('id', [1,2,3,4,5,6])->get();
Я что-то упустил здесь?
он говорит Invalid argument supplied for foreach(), а затем выделяет мой $results= Model::whereIn('id', $request->my_ids)->get(); запрос
Я предполагаю, что $request->my_ids дает вам массив, похожий на строку, однако вы можете улучшить свой запрос с помощью Model::findMany($request->my_ids);






Ваш dd показывает, что $request->my_ids является строкой, поэтому вы должны проанализировать ее, прежде чем использовать в качестве массива.
Пытаться
$results= Model::whereIn('id', json_decode($request->my_ids))->get();
@kapitan с удовольствием! :)
Какую ошибку он вам выдает?