Php 拉威尔阵列输出

Php 拉威尔阵列输出,php,laravel,eloquent,Php,Laravel,Eloquent,我正在控制器中执行查询,并在视图中输出总成本 我的问题是: $stat = array( 'TotalCost' => DB::table('ORD_DETAIL') ->select(DB::raw('SUM(OD_QTYORD * OD_QTYUNIT * OD_COSTPRICE) as TotalCost')) ->where('OD_ORDER_N

我正在控制器中执行查询,并在视图中输出总成本

我的问题是:

 $stat = array(
            'TotalCost' => DB::table('ORD_DETAIL')
                        ->select(DB::raw('SUM(OD_QTYORD * OD_QTYUNIT * OD_COSTPRICE) as TotalCost'))
                        ->where('OD_ORDER_NUMBER',$id)->first()
            );
这是我的输出:

{{ $stat['TotalCost'] }}
但我得到了一个错误:

htmlentities()要求参数1为字符串,对象为给定对象(视图: F:\view.blade.php)


出现上述错误的原因是您的查询返回了一个
对象

要解决此问题,您可以执行以下操作之一:

{{ $stat['TotalCost']->TotalCost }}
或者您可以将查询更改为使用Larvel的内置
sum()
方法:

DB::table('ORD_DETAIL')
    ->where('OD_ORDER_NUMBER',$id)
    ->sum(DB::raw('OD_QTYORD * OD_QTYUNIT * OD_COSTPRICE'));
希望这有帮助

将其更改为

{{ $stat['TotalCost']->TotalCost }}
维持

{{ $stat['TotalCost'] }}
将您的查询更改为

 $stat = array(
        'TotalCost' => DB::table('ORD_DETAIL')
                    ->select(DB::raw('SUM(OD_QTYORD * OD_QTYUNIT * OD_COSTPRICE) as TotalCost'))
                    ->where('OD_ORDER_NUMBER',$id)->lists('TotalCost')->first();
        );
尝试在
first()
之后添加
get()
-
…first()->get()