使用模型中定义的关系方法的Laravel原始查询
我创建了一个函数,用于执行搜索表单的原始查询。这将返回查询结果,如return\DB::Select\DB::RawSELECT。。。持有此方法的模型还包含关系函数。假设这个模型有一个关系函数products,原始查询的结果存储在$items中 当我尝试像使用模型中定义的关系方法的Laravel原始查询,laravel,eloquent,laravel-5,Laravel,Eloquent,Laravel 5,我创建了一个函数,用于执行搜索表单的原始查询。这将返回查询结果,如return\DB::Select\DB::RawSELECT。。。持有此方法的模型还包含关系函数。假设这个模型有一个关系函数products,原始查询的结果存储在$items中 当我尝试像 @foreach($items as $item) @foreach($item->products as $product) {{ $product->someVar }} @endforeach @endfor
@foreach($items as $item)
@foreach($item->products as $product)
{{ $product->someVar }}
@endforeach
@endforeach
我得到一个未定义的属性未定义的属性:stdClass::products错误。我假设这是因为Laravel还不知道$items实际上是与产品有关系的模型类的集合
有没有办法将这些关系函数绑定到原始查询?我在不知情的情况下找到了解决方案,可以在de-Model类中查找。有一种方法是水合和水合。该文档向我们介绍了以下内容: 从普通阵列创建模型集合 如果有人想知道,以下是如何解决上述问题:
return self::hydrate(
\DB::Select(
\DB::Raw("SELECT * FROM `table`")
)
);
我在不知情的情况下找到了在de模型类中查找的解决方案。有一种方法是水合和水合。该文档向我们介绍了以下内容: 从普通阵列创建模型集合 如果有人想知道,以下是如何解决上述问题:
return self::hydrate(
\DB::Select(
\DB::Raw("SELECT * FROM `table`")
)
);
向我们展示更多如何填充$items数组的代码向我们展示更多如何填充$items数组的代码