ПОЛУЧИТЬ выбор нескольких значений - PullRequest
0 голосов
/ 29 мая 2019

Мне нужно получить выбранные значения для множественного выбора:

С помощью простого выбора можно нормально работать с этим методом:

public function championships(Request $request)
{
   $nationId = $request->get('q');
   return Championship::where('nation_id', $nationId)->get(['id', 'name as text']);
}

Но мне нужно получить все выбранные значения в множественном выборе и передатьэто к запросу с использованием массива с whereIn.

Но я не знаю, как захватить значения множественного выбора

Спасибо

Ответы [ 2 ]

2 голосов
/ 29 мая 2019

Если вы хотите множественный выбор, вы должны сказать laravel, что это массив значений, о чем говорит этот блок выбора. Вы делаете это, добавляя «[]» к имени поля выбора.

<select name="q[]">

Теперь, когда контроллер получает значение этого входа, оно будет в виде массива, а не скалярного значения.

Итак, для ясности в вашем коде это должно быть так:

$nationIds = $request->get('q');

А теперь вы хотите выбрать из массива значений, а не одного, поэтому теперь вам нужно «где» вместо «где»:

return Championship::whereIn('nation_id',$nationIds)->get(['id', 'name as text']);
0 голосов
/ 29 мая 2019

Попробуйте следующее.

Championship::select('id', 'name as text')->where('nation_id', $nationId)->get();

А где оператор

$users = Championship::select('id', 'name as text')
->where([
    ['nation_id', '=', $nationId],
    ['name', 'like', $name],
])->get();

Или где оператор

$users =Championship::select('id', 'name as text')
    ->where('nation_id', '=', $nationId)
    ->orWhere('name', 'like', $name)
    ->get();
...