laravel - Laravel 查询以列出结果
问题描述
我正在尝试编写一个查询,该查询获取一组记录并循环遍历它们并将它们全部显示,但如果一条记录包含一个字段为真,我需要它来隐藏特定记录。
用例
purchased
抓住该领域为真的产品集合- 如果集合中的产品的字段
includes_bonus
设置为 true 列出除bonus
id 为 2的产品之外的所有产品
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 = $user->products()->where('purchased', 1);
if($user->products()->where('includes_bonus', 1)->first()){
$productsPurchased=$productsPurchased->where('products.id', '!=', 2);
}
$productsPurchased=$productsPurchased->get();
推荐阅读
- reactjs - 用户登录时ReactJS更新组件中的数据
- powershell - 用于重命名网络共享中的配置文件文件夹的 Powershell 脚本工具
- php - 在 Laravel 中为 3DSecure 传递信用卡信息
- javascript - Office 加载项 excel 扩展在带有“import axios”语句的 IE11 上不起作用
- sql - SQL中连续变量的频率表?
- gradle - Gradle 在另一个任务运行时执行任务
- python - guild.text_channels 只返回顶部频道而不是所有频道
- sql - 在选择 Microsoft SQL 中用 XXXX 替换字段中的某些位置
- python - 向量化 for 循环
- sql - SQL Server INNER JOIN 和 GROUP BY