使用模型中定义的关系方法的Laravel原始查询

使用模型中定义的关系方法的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

我创建了一个函数,用于执行搜索表单的原始查询。这将返回查询结果,如return\DB::Select\DB::RawSELECT。。。持有此方法的模型还包含关系函数。假设这个模型有一个关系函数products,原始查询的结果存储在$items中

当我尝试像

@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数组的代码