【问题标题】:laravel 7 Get Sum From eloquent relation columnlaravel 7 从雄辩的关系列中获取总和
【发布时间】:2021-08-09 18:42:07
【问题描述】:
 $user = User::with(['affiliateCode','rewardPoints','orders'=>function($query){
        $query->where('order_status_id','!=',1);
    }])
    ->withCount(['orders'=>function($q){
        $q->where('order_status_id','!=',1);   
    }])
    ->where('id',$userId)->first();

上面的代码工作正常..我还想从orders表中返回sum中的所有amount,其中order_status_id !=1带有这个响应..

我已经尝试过withSum(),但它自 laravel 7 以来就无法正常工作, 任何人都可以帮助退还这笔款项吗?谢谢你

【问题讨论】:

    标签: laravel eloquent laravel-7


    【解决方案1】:

    您可以使用withCount 方法和这样的回调。

    $user = User::with(['affiliateCode','rewardPoints','orders'=>function($query){
            $query->where('order_status_id','!=',1);
        }])
        ->withCount(['orders'=>function($q){
            $q->where('order_status_id','!=',1);   
        }])
        ->withCount(['orders as orders_amount'=>function($q){
            $q->where('order_status_id','!=',1)->select(DB::raw('sum(amount)'));   
        }])
        ->where('id',$userId)->first();
    

    【讨论】:

    • 在较新的版本中,有一个新的助手可用于从关系 withSum 中获取总和
    • @MKhalidJunaid 是的,我知道,但他在 laravel 7 中这样做。
    猜你喜欢
    • 2023-04-01
    • 2020-12-02
    • 2019-07-16
    • 2016-07-22
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2015-03-14
    • 2018-11-28
    相关资源
    最近更新 更多