Php Laravel,获取属性的计数
我有一张名为“投票”的表格和另一张名为“分项”的表格。投票和子项共享一对多关系。我有另一个名为Vote_casts的表,它记录了用户对哪个子项进行投票。 这是一个例子: 现在,我想计算一个特定投票的每个子项目的投票数。我没有存储这个值,因为它会使表非规范化。 相反,我希望从投票表中计算这些数据。 (通过计算特定子_项_id的行数,我将能够做到这一点) 因此,在我的模型中,我创建了以下内容:Php Laravel,获取属性的计数,php,mysql,model,laravel-5,Php,Mysql,Model,Laravel 5,我有一张名为“投票”的表格和另一张名为“分项”的表格。投票和子项共享一对多关系。我有另一个名为Vote_casts的表,它记录了用户对哪个子项进行投票。 这是一个例子: 现在,我想计算一个特定投票的每个子项目的投票数。我没有存储这个值,因为它会使表非规范化。 相反,我希望从投票表中计算这些数据。 (通过计算特定子_项_id的行数,我将能够做到这一点) 因此,在我的模型中,我创建了以下内容: public function getCountAttribute(){ return Vote
public function getCountAttribute(){
return Vote_cast_action::where('sub_item_id',$this->id)->count();
}
这正如预期的那样有效。但问题是,对于投票中的每个子项,都会调用查询。因此,如果投票中有20个子项,那么此行本身将被调用20次(我是在查看sql查询日志后这样说的)
有没有办法让这个查询在laravel中更有效?
您有没有阅读过有关Laravel中的快速加载的内容?我不知道如何急于加载将与此工作。你能举个例子吗?一票有很多子项目,或者相反?不管怎样,现在已经晚了,看看这个,这个好的卢卡恩投票有很多子项目。