【问题标题】: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;