【发布时间】:2025-05-17 08:40:01
【问题描述】:
我在 Laravel 中构建了一个广告/属性应用程序。我有一个带有复选框的过滤器的搜索表单。当我从同一个请求中选择两个选项时遇到问题,例如供应,需求 PropertyBidAsk 我只从需求中得到结果,而不是两者,我也想在提交表单后同时检查两者。供应和需求是类别表中类别列中的值。任何帮助表示赞赏。这是我的代码。
CategoryController.php:
public function search(Request $request, Property $property)
{
$category = $property->category;
$query = Property::query();
if ($request->has('propertyBidAsk')) {
$request->get('propertyBidAsk');
}
if ($request->propertyBidAsK == 'supply' && $request->propertyBidAsk== 'demand') {
$query->whereHas('category', function ($query) use ($request) {
$query->where('category', 'like', '%' . $request->propertyBidAsk . '%');
});
} elseif ($request->propertyBidAsk == 'supply') {
$query->whereHas('category', function ($query) use ($request) {
$query->where('category', 'like', '%' . 'supply' . '%');
});
} else if ($request->propertyBidAsk == 'demand') {
$query->whereHas('category', function ($query) use ($request) {
$query->where('category', 'like', '%' . 'demand' . '%');
});
}
$results = $query->paginate(6);
return view('search', compact('category', 'results', 'request'));
}
search.blade.php:
<div class="col-md-2 mb-6">
<h5>Payment Method</h4>
<div class="d-block my-3">
<div class="custom-control custom-checkbox">
<input id="supply" name="propertyBidAsk" value="supply" type="checkbox" class="custom-control-input" @if(old('propertyBidAsk', $request->propertyBidAsk ?? 'default') === 'supply') checked @endif>
<label class="custom-control-label" for="supply">supply</label>
</div>
<div class="custom-control custom-checkbox">
<input id="demand" name="propertyBidAsk" value="demand" type="checkbox" class="custom-control-input" @if(old('propertyBidAsk', $request->propertyBidAsk ?? 'default') === 'demand') checked @endif>
<label class="custom-control-label" for="demand">demand</label>
</div>
</div>
</div>
【问题讨论】:
-
$request->propertyBidAsK == 'supply' && $request->propertyBidAsk== 'demand'一个字符串怎么可能有两个不同的值? -
也许你的意思是
||而不是&&? -
@Jerodev 我知道,但我尝试了一切,但没有任何效果。这只是为了让某人了解我正在尝试做的事情并在可能的情况下帮助我。我不知道如何解决这个问题
-
也许你可以删除你的 if 条件,然后把这个 $query->where('category', 'like', '%' . $request->propertyBidAsk . '%');跨度>
-
如果您的请求具有您想要的正确值,请尝试使用
dd($request->propertyBidAsk);