【问题标题】:Object of class stdClass could not be converted to number类 stdClass 的对象无法转换为数字
【发布时间】:2019-12-22 15:53:19
【问题描述】:

我已经合计了生产量和邪恶量现在我想将生产量除以生产量(s / p)

public function somsin(){
    $sumsin = DB::table('sinistres')
    ->select(DB::raw('sum(montant_sin) as totalsin'))
    ->get();
    $sumpro = DB::table('productions')
    ->select(DB::raw('sum(montant_pro) as montant_pro'))
    ->get();
    $toto = $sumsin[0]/$sumpro[0];
    return view('test')->with(['sumsin'=>$sumsin, 'sumpro'=>$sumpro, 'toto'=>$toto]);
}

stdClass 类的对象无法转换为数字

【问题讨论】:

    标签: laravel laravel-5 eloquent


    【解决方案1】:

    如果您想从查询中获取单个值,最好使用value() 函数,即:

    public function somsin(){
        $sumsin = DB::table('sinistres')
            ->select(DB::raw('sum(montant_sin) as totalsin'))
            ->value('totalsin');
        $sumpro = DB::table('productions')
            ->select(DB::raw('sum(montant_pro) as montant_pro'))
            ->value('montant_pro');
        $toto = $sumsin/$sumpro;
        return view('test')->with(['sumsin'=>$sumsin, 'sumpro'=>$sumpro, 'toto'=>$toto]);
    }
    

    或者使用像sum()这样的聚合函数会更好:

    public function somsin(){
        $sumsin = DB::table('sinistres')
            ->sum('montant_sin');
        $sumpro = DB::table('productions')
            ->sum('montant_pro');
        $toto = $sumsin/$sumpro;
        return view('test')->with(['sumsin'=>$sumsin, 'sumpro'=>$sumpro, 'toto'=>$toto]);
    }
    

    你遇到的错误是因为你试图对两个标准对象求和,get() 函数返回一个标准对象数组,你也可以用这个来解决行你自己的查询

     $toto = $sumsin[0]->totalsin/$sumpro[0]->montant_pro;
    

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2020-03-16
      • 2021-11-10
      相关资源
      最近更新 更多