laravel 属性[地址]在Eloquent生成器示例上不存在

uxh89sit  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(143)

我正在做一个项目,其中一些建筑物的某些信息被上传,并根据需要检索。DB表属性:列:标识、图像、建筑类型标识(建筑类型表的外键)等
我想运行一个查询,其中的列表将根据building_type排序
控制器:

public function index() {
  return view ('pages.index', [
    'duplex' => Property::where('building_type_id', '4'),
    'singleroom' => Property::where('building_type_id', '1')
  ]);
}

查看:

@if($singleroom->count())
  {{ $singleroom->id }}
@else
  no info
@endif

我得到这个错误
属性[id]在Eloquent生成器示例上不存在。
我搜索了类似的问题,发现必须添加->get()->first()

'duplex' => Property::where('building_type_id', '4')->get(),
'singleroom' => Property::where('building_type_id', '1')->get()

我得到这个错误:
超过了60秒的最大执行时间
我查看了详细信息,我看到执行了200个查询。我不知道我是如何要求200个查询的。
我看到的建议是增加执行时间,我发现这不是200个查询的解决方案。
我已经浏览了类似问题的解决方案,但没有解决方案。我有ddd(),但没有得到任何东西。

46scxncf

46scxncf1#

当你在模型上静态调用where()时,它会返回一个查询生成器,你可以一直推直到它被执行。如果你在查询生成器上调用get(),你会得到一个结果集合。相反,如果你先调用它,它会返回你的模型。
使用first()调用实际获取模型。

[
    'duplex' => Property::where('building_type_id', '4')->first(),
    
    'singleroom' => Property::where('building_type_id', '1')->first(),
],

相关问题