Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel 4,模型关系,获取一个模型的列表,以及另一个模型中相关行的计数_Laravel_Laravel 4 - Fatal编程技术网

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

laravel 4,模型关系,获取一个模型的列表,以及另一个模型中相关行的计数,laravel,laravel-4,Laravel,Laravel 4,我有一个与另一个模型(Toc)相关的模型(日志),因此每个日志可以有一个或多个Toc,我想检索一个日志列表,其中包含每个日志中的Toc计数 我创建了一个代码,用每个日志中的TOC列表检索日志列表,然后使用PHP count函数计算TOC,但我认为这可能是一种更有效的方法,而不必获取消耗更多内存的整个列表 这是我的密码: 型号: public function toc() { return $this-> hasMany ( 'Toc', 'journal_id' ) ; }

我有一个与另一个模型(Toc)相关的模型(日志),因此每个日志可以有一个或多个Toc,我想检索一个日志列表,其中包含每个日志中的Toc计数

我创建了一个代码,用每个日志中的TOC列表检索日志列表,然后使用PHP count函数计算TOC,但我认为这可能是一种更有效的方法,而不必获取消耗更多内存的整个列表

这是我的密码:

型号:

public function toc()
{

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

}
控制器:

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

有什么帮助吗注意:我使用的是laravel 4

您可以使用
变异体来设置所需的值,在您的模型日志中添加:

protected $appends = array('numberOfTocs');
以及获取此属性的方法:

public function getNumberOfTocsAttribute()
{
    return $this->toc()->count();
}
这样,在查询中就有了一个额外的属性,对应于Toc的数量


是另一个有趣的实现。

您可以使用
Mutators
来设置所需的值,在模型日志中添加:

protected $appends = array('numberOfTocs');
以及获取此属性的方法:

public function getNumberOfTocsAttribute()
{
    return $this->toc()->count();
}
这样,在查询中就有了一个额外的属性,对应于Toc的数量


是另一个有趣的实现。

如何在控制器中使用此附加属性?我无法跟踪您提供的URL,它在尝试时显示并出错。如果您调试数据['model'],您将拥有名为NumberOfToc的附加属性日志这是链接:我如何在控制器中使用此附加属性?我无法跟踪您提供的URL,它会在尝试时显示错误。如果调试数据['model'],您将拥有名为NumberOfToc的附加属性日志这是链接: