首页 > 解决方案 > Laravel:与多个咨询

问题描述

我有以下查询:

$items = RequestItems::where('requests.user_id', '=', $user->id)
      ->orderBy('requests.id', 'desc')
      ->with(['item', 'image', 'gratitude', 'item.user', 'gratitude.gratitude_image'])
      ->paginate(10);

我从中得到:

在此处输入图像描述

我尝试从 Blade 访问 foreach 中的Thanks_image 字段,但它没有给我:

{{$item->gratitude->gratitude_image[0]}}

但它没有给我带来信息。请帮忙……</p>

标签: laraveleloquent

解决方案


你真的不需要使用with. 基本上有两种类型的加载,lazy loadingeager loading。还有一个你可以添加lazy eager loading

那么你现在应该如何处理这些条款呢?只需在相应的模型类中定义所需的关系,然后在刀片文件中即可简单地使用lazy loading,而无需使用with.

例子:{{ $item->gratitude->gratitude_image[0]->id ?? 'Not Found' }}

在这里,这是一个条件语句。如果存在 anid那么它将被打印,否则Not Found将被打印。除了直接调用0th index,您还可以使用foreach循环遍历所有条目。


推荐阅读