我在MySQL表中有一个名为“便利设施”的字段。我要查询的列的内容如下所示:
a:4:{i:123;s:3:"123";i:126;s:3:"126";i:127;s:3:"127";i:133;s:3:"133";}
还有一个样式如下的下拉列表-
<div class="form-group">
<label>Amenities</label>
<select class="form-control select2" name="amenities" multiple="multiple">
<option value="123">Garden</option>
<option value="124">Garage</option>
<option value="125">Furnished</option>
<option value="126">Unfurnished</option>
<option value="127">Driveway</option>
</select>
</div>
我正在尝试根据使用以下代码选择的值进行查询-
if($request->amenities){
$ads = $ads->where('amenities','like', "%{$request->amenities}%");
}
它适用于所选的第一个便利设施,但如果我选择了多种便利设施,则无效。我将如何去做?
答案 0 :(得分:0)
您可以将二维数组传递给where()
,每个条目将代表一个条件:
$conditions = [];
foreach ($request->amenities as $amenity){
$conditions[] = ['amenities', 'like', '%'.$amenity.'%'];
}
$ads = $ads->where($conditions);