Php 使用laravel eloquent获得字段的和
我开始使用Laravel,我喜欢这个框架,现在我开始从事一个小项目,我想知道如何使用SUM来获得我在一个名为variants的表中的变量总数,我想对stock字段进行求和 变量表中存在库存字段 我怎样才能把sum和雄辩结合起来呢 这是我的密码Php 使用laravel eloquent获得字段的和,php,laravel,eloquent,Php,Laravel,Eloquent,我开始使用Laravel,我喜欢这个框架,现在我开始从事一个小项目,我想知道如何使用SUM来获得我在一个名为variants的表中的变量总数,我想对stock字段进行求和 变量表中存在库存字段 我怎样才能把sum和雄辩结合起来呢 这是我的密码 $products = Product::with(['category', 'brand', 'supplier'])->orderBy('id', 'desc')->paginate(15); 我的模型变量函数 public functi
$products = Product::with(['category', 'brand', 'supplier'])->orderBy('id', 'desc')->paginate(15);
我的模型变量函数
public function variant(){
return $this->hasMany('App\Variant', 'product_id','id');
}
您是否需要使用任何过滤器/条件进行求和?如果不是这样,则可以简单到:
$sum = Variant::sum('stock');
变体
表与产品
表的关系如何?调用时方便,因为它与
添加访问者:
在产品型号中:
protected$appends=['stock_sum'];
公共函数getStockSumAttribute(){
返回$this->variants()->sum('stock');
}
因此,您可以按产品将其称为:
$products=Product::with(['category','brand','supplier'])->orderBy('id','desc')->paginate(15);
$products->first()->库存总额;
使用product_id field我如何用我的口才做到这一点;产品::带有(['category'、'brand'、'supplier'])->orderBy('id'、'desc')->分页(15);您想要所有相关产品的库存总额,还是只想要页面上已检索的产品?您可以使用$this->variants()->sum('stock')
提高性能。当变体关系不急于加载且不需要时,速度会快得多。@EliasSoares u'r right,thx为您提供建议,我只是在收集时求和。使用variants()->sum
db中的sum。我已经更新了。@TsaiKoga我得到了库存金额:0,因为我有两行,每行包含数字10,我已经更新了我的问题检查我的变量function@TsaiKoga很好,谢谢你,只是我想了解getStockSumAttribute函数如何调用以及在何处调用it@RicardoAbel它是一个虚拟属性,如果您定义了这个getter方法,如果有此属性,则可以通过每个产品对象调用它。