Laravel 集合查询
Posted
技术标签:
【中文标题】Laravel 集合查询【英文标题】:Laravel collection querying 【发布时间】:2021-02-23 18:29:55 【问题描述】:我已经编写了一个查询来获取结果集合,我添加了一个检查来说明记录是否包含此字段隐藏 ID 为 2 的记录。
控制器方法
$purchasedProducts = $user->products()->where('purchased', 1);
if ($user->products()->where('includes_bonus', 1)->first())
$purchasedProducts->where('benefits.id', '!=', 2);
$purchasedProducts->get();
刀片
在这里我写出了要在刀片中显示的 foreach 循环。
@foreach($purchasedProducts as $product)
<div class="col-xl-6 p-0 p-xl-4 mb-5 mb-xl-0">
<form action="route('cancel.product', $product->id)" method="POST">
@csrf
收到错误
Trying to get property 'id' of non-object
<form action="<?php echo e(route('cancel.product', $product->id)); ?>" method="POST">
你能看出我哪里出错了吗?
【问题讨论】:
您从未执行过您使用$purchasedProducts
构建的查询,它仍然是构建器,而不是结果
我将如何修改上述内容您介意提供答案吗?
【参考方案1】:
您没有将查询结果分配给任何东西,您只是在正在构建的查询上调用get()
,但没有对返回的结果做任何事情。也许将它分配给一个变量:
$purchasedProducts = $purchasedProducts->get();
【讨论】:
以上是关于Laravel 集合查询的主要内容,如果未能解决你的问题,请参考以下文章
如何合并集合和查询构建器,然后在其上使用分页 Laravel 8