laravel 4,模型关系,获取一个模型列表,其中包含另一个模型中相关行的计数

时间:2016-04-28 19:39:13

标签: laravel laravel-4

我有一个与另一个模型(Toc)相关的模型(Journal),所以每个期刊都可以有一个或多个TOC,我想检索每个期刊中Toc数量的期刊列表。

我创建了一个代码,用于检索每个日志中包含toc列表的日志列表,然后使用PHP计数函数计算tocs,但我认为它们可能是一种更有效的方式,而不是必须获得更多吃更多的整个列表存储器中。

这是我的代码:

型号:

public function toc()
{

    return $this->  hasMany ( 'Toc', 'journal_id' ) ;

}

控制器:

$this->data['model'] = $this->model->with('toc')->get()  ;

有任何帮助吗? 注意:我使用的是laravel 4

1 个答案:

答案 0 :(得分:2)

您可以使用Mutators在您的模型日记添加:

中设置您想要的值
protected $appends = array('numberOfTocs');

以及获取此属性的方法:

public function getNumberOfTocsAttribute()
{
    return $this->toc()->count();
}

这样,您的查询中就会有一个与Toc数相对应的附加属性。

Here是另一个有趣的实现。