我创建了一个执行原始查询的函数(用于搜索表单) . 这将返回查询结果,如 return \DB::Select(\DB::Raw("SELECT ..."))
. 保存此方法的模型也包含关系函数 . 假设此模型具有关系函数 products
,并且原始查询的结果存储在$ items中 .
当我尝试类似的东西
@foreach($items as $item)
@foreach($item->products as $product)
{{ $product->someVar }}
@endforeach
@endforeach
我得到一个未定义的属性“Undefined property:stdClass :: products”错误 . 我认为这是因为Laravel还不知道$ items实际上是与“产品”有关系的Model-class的集合 .
有没有办法将这些关系函数“绑定”到原始查询?
1 回答
我发现解决方案有点不知不觉在de Model-class中查看 . 有一个方法
hydrate
(和hydrateRaw
) . 文档告诉我们以下内容:如果有人想知道,这是如何解决上面的问题: