依赖倒置和急切加载

时间:2016-04-07 05:31:52

标签: php laravel

我的问题是,在使用依赖倒置原则时,有人如何使用eagerloading?

在这种情况下例如!

abstract class dbrepo
{
    public function findorfail($id)
    {
        return $this->model->findOrFail($id);
    } 
}

1 个答案:

答案 0 :(得分:1)

您仍然使用with()方法:

return $this->model->with('relation1', 'relation2')->findOrFail($id);

修改

好吧,你可以接受一组关系加载作为第二个参数。

public function findorfail($id, array $relations = [])
{
    $query = $this->model;
    if (!empty($relations)) {
        $query = $query->with($relations);
    }
    return $query->findOrFail($id);
}

但是,在某些时候,您需要问自己,您将尝试在存储库模式中重新实现多少Eloquent。在get()方法上,您是否要为where,order by,group by,limit,join,eager load等添加参数?您是否要在存储库中重新实现整个查询构建器?