0

我有这个问题。在 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)
...

但我得到“方法 [站点] 未在查询类上定义”错误。我一直在寻找急切的加载方式,但我看不出它如何在关系上增加一个层次。

此外,我正在考虑查询所有资产并根据实际协调过滤资产,但我认为这将花费大量时间来加载......

提前致谢

4

1 回答 1

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)
于 2013-07-02T14:39:31.530 回答