我需要选择多项选择值:
通过简单的选择,可以很好地使用此方法:
public function championships(Request $request)
{
$nationId = $request->get('q');
return Championship::where('nation_id', $nationId)->get(['id', 'name as text']);
}
但是我需要获取multiselect中所有选定的值,并使用带有whereIn的数组将其传递给查询。
但是我不知道如何捕获multiselect的值
谢谢
答案 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();