Laravel WhereIn не принимает значение массива

У меня есть это в моем файле лезвия:

{{ 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();

Я что-то упустил здесь?

Какую ошибку он вам выдает?

porloscerros Ψ 09.06.2019 11:46

он говорит Invalid argument supplied for foreach(), а затем выделяет мой $results= Model::whereIn('id', $request->my_ids)->get(); запрос

kapitan 09.06.2019 11:50

Я предполагаю, что $request->my_ids дает вам массив, похожий на строку, однако вы можете улучшить свой запрос с помощью Model::findMany($request->my_ids);

AH.Pooladvand 09.06.2019 11:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш dd показывает, что $request->my_ids является строкой, поэтому вы должны проанализировать ее, прежде чем использовать в качестве массива.

Пытаться

$results= Model::whereIn('id', json_decode($request->my_ids))->get();

@kapitan с удовольствием! :)

MyLibary 09.06.2019 12:11

Другие вопросы по теме