获取多选所选值

时间:2019-05-29 09:22:00

标签: laravel request multi-select

我需要选择多项选择值:

通过简单的选择,可以很好地使用此方法:

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

但是我需要获取multiselect中所有选定的值,并使用带有whereIn的数组将其传递给查询。

但是我不知道如何捕获multiselect的值

谢谢

2 个答案:

答案 0 :(得分:2)

如果要进行多重选择,则必须告诉laravel它是一个值数组,该选择框是关于什么的。为此,请在选择框的名称后附加“ []”。

<select name="q[]">

现在,当控制器检索到此输入的值时,它将采用数组的形式,而不是标量值。

因此,为了使您的代码更清晰,它应该像这样:

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

现在您要从一组值中选择一个而不是一个,因此现在需要一个“ whereIn”而不是“ where”:

return Championship::whereIn('nation_id',$nationIds)->get(['id', 'name as text']);

答案 1 :(得分:-1)

请尝试以下操作。

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

还有where语句

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