Laravel,无法为多个 <select> 中的数组构建查询
Laravel, can't build query for array in multiple <select>
我做了一个过滤器来寻找商家
有几个城市可供选择
城市存储在 city_id 列
过滤器看起来像这样
<select id="city" multiple name="city[]">
@foreach($cities as $city)
<option value="{{ $city->name }}">{{ $city->name }}</option>
@endforeach
</select>
全部要求
dd($request->all())
给我看这个
我为特许经营或业务建立查询
像这样
if ($request->has('fb')) {
$businessesQuery->where('fb', $request->fb);
}
我尝试像这样构建查询,但它不起作用
if ($request->has('city[]')) {
$typeArray = explode(",", $request->city[]);
$businessesQuery->whereIn('city_id', $typeArray);
}
帮我解决这个问题,不胜感激!
您的 html
必须使用 city_id
作为值,而不是城市名称。因为您尝试使用 id
而不是 name
.
进行搜索
<option value="{{ $city->id }}">{{ $city->name }}</option>
explode
函数接受一个 string
作为输入,returns 一个数组。在您的情况下,您的 city[]
请求值已经是一个从 dump
可见的数组。你应该直接使用它。像这样。
if ($request->has('city')) {
$businessesQuery->whereIn('city_id', $request->input('city');
}
我做了一个过滤器来寻找商家
有几个城市可供选择
城市存储在 city_id 列
过滤器看起来像这样
<select id="city" multiple name="city[]">
@foreach($cities as $city)
<option value="{{ $city->name }}">{{ $city->name }}</option>
@endforeach
</select>
全部要求
dd($request->all())
给我看这个
我为特许经营或业务建立查询 像这样
if ($request->has('fb')) {
$businessesQuery->where('fb', $request->fb);
}
我尝试像这样构建查询,但它不起作用
if ($request->has('city[]')) {
$typeArray = explode(",", $request->city[]);
$businessesQuery->whereIn('city_id', $typeArray);
}
帮我解决这个问题,不胜感激!
您的 html
必须使用 city_id
作为值,而不是城市名称。因为您尝试使用 id
而不是 name
.
<option value="{{ $city->id }}">{{ $city->name }}</option>
explode
函数接受一个 string
作为输入,returns 一个数组。在您的情况下,您的 city[]
请求值已经是一个从 dump
可见的数组。你应该直接使用它。像这样。
if ($request->has('city')) {
$businessesQuery->whereIn('city_id', $request->input('city');
}