Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Php Laravel,获取属性的计数_Php_Mysql_Model_Laravel 5 - Fatal编程技术网

Php Laravel,获取属性的计数

Php Laravel,获取属性的计数,php,mysql,model,laravel-5,Php,Mysql,Model,Laravel 5,我有一张名为“投票”的表格和另一张名为“分项”的表格。投票和子项共享一对多关系。我有另一个名为Vote_casts的表,它记录了用户对哪个子项进行投票。 这是一个例子: 现在,我想计算一个特定投票的每个子项目的投票数。我没有存储这个值,因为它会使表非规范化。 相反,我希望从投票表中计算这些数据。 (通过计算特定子_项_id的行数,我将能够做到这一点) 因此,在我的模型中,我创建了以下内容: public function getCountAttribute(){ return Vote

我有一张名为“投票”的表格和另一张名为“分项”的表格。投票和子项共享一对多关系。我有另一个名为Vote_casts的表,它记录了用户对哪个子项进行投票。 这是一个例子:

现在,我想计算一个特定投票的每个子项目的投票数。我没有存储这个值,因为它会使表非规范化。 相反,我希望从投票表中计算这些数据。 (通过计算特定子_项_id的行数,我将能够做到这一点)

因此,在我的模型中,我创建了以下内容:

public function getCountAttribute(){

    return Vote_cast_action::where('sub_item_id',$this->id)->count();

}
这正如预期的那样有效。但问题是,对于投票中的每个子项,都会调用查询。因此,如果投票中有20个子项,那么此行本身将被调用20次(我是在查看sql查询日志后这样说的)

有没有办法让这个查询在laravel中更有效?

您有没有阅读过有关Laravel中的快速加载的内容?我不知道如何急于加载将与此工作。你能举个例子吗?一票有很多子项目,或者相反?不管怎样,现在已经晚了,看看这个,这个好的卢卡恩投票有很多子项目。