如何解决Laravel查询以列出结果
我正在尝试编写一个查询,该查询需要一组记录并循环遍历它们并显示所有记录,但是如果一条记录包含一个真实字段,我需要它隐藏特定记录。
用例
- 抢占
purchased
字段为真的产品 - 如果该集合中的某个产品的字段
includes_bonus
设置为true,则列出{id}为2的bonus
产品之外的所有产品
1。
这将获取已购买的所有设置为true的产品
$productsPurchased = $user->products()->where('purchased',1)->get();
2次尝试
下面我尝试做上述事情,但是我没有很多运气。
-
获取购买商品的所有商品均设置为1(true)
-
如果产品
includes_bonus
为1(true),则从产品列表中隐藏ID为2的产品记录。$productsPurchased = $user->products()->where('purchased',1) ->where('includes_bonus',1) ->where('products.id','!==',2) ->get();
刀片
然后我想在刀片服务器中进行一次foreach,列出我的用例中的所有产品。
@foreach($purchasedProducts as $purchasedProduct)
<div class="col-xl-6 p-0 p-xl-4 mb-5 mb-xl-0">
<div class="card border">
<div class="card-header border rounded-top"
</div>
<div class="card-block">
@endforeach
解决方法
尝试“过滤器”集合
$productsPurchased->filter(function ($value,$key) {
return '**condition for filter**';
});
,尝试以下方法:
$productsPurchased = $user->products()->where('purchased',1);
if($user->products()->where('includes_bonus',1)->first()){
$productsPurchased=$productsPurchased->where('products.id','!=',2);
}
$productsPurchased=$productsPurchased->get();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。