Laravel WhereIn не принимает значение массива - PullRequest
0 голосов
/ 09 июня 2019

У меня есть это на моем блейд-файле:

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

Я что-то здесь упускаю?

1 Ответ

3 голосов
/ 09 июня 2019

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

Попробуйте

$results= Model::whereIn('id', json_decode($request->my_ids))->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...