我有这个问题。在Laravel,我有3个模型,即:
class Department{
public function coordinations(){
return $this->has_many('Coordination');
}
}
class Coordination{
public function sites(){
return $this->has_many('Site');
}
}
class Site{
public function assets(){
return $this->has_many('FAssets');
}
}
class FAsset{}
我想显示按部门分组的所有资产。我试图做类似的事情:
@foreach($dependencias as $dep)
<tr>
<td colspan="8" style="width:100%">Dependencia: {{ $dep->code }} {{ $dep->description }}</td>
</tr>
@foreach($dep->coordinations()->sites()->assets()->get() as $asset)
...
但是我得到了“方法[sites]没有在Query类上定义”错误。我一直在寻找热切的装载方式,但我不知道如何在关系上增加一层水平。
另外,考虑到实际协调,我正在考虑查询所有资产并过滤资产,但我认为这需要花费大量时间来加载......
提前致谢
答案 0 :(得分:1)
class Deparment{
public function department_assets(){
$assets = array();
foreach($this->has_many('Coordination')->get() as $coordination){
foreach($coordination->sites()->get() as $site){
foreach($site->assets() as $asset)
{
$assets[] = $asset;
}
}
}
return $assets;
}
}
现在我们可以......
@foreach($dep->department_assets() as $asset)