Laravel collection 正在查询

Laravel collection querying

我已经编写了一个查询来获取 collection 个结果,我添加了一个检查来判断记录是否包含此字段隐藏 ID 为 2 的记录。

控制器方法

  $purchasedProducts = $user->products()->where('purchased', 1);
        if ($user->products()->where('includes_bonus', 1)->first()) {
            $purchasedProducts->where('benefits.id', '!=', 2);
        }

        $purchasedProducts->get();

Blade

在这里我编写了要在 blade.

中显示的 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">

你能看出我错在哪里吗?

您尚未将查询结果分配给任何内容,您只是对正在构建的查询调用 get(),但未对返回结果执行任何操作。也许将它分配给一个变量:

$purchasedProducts = $purchasedProducts->get();