当我在Laravel中编写自定义查询时,别名不起作用

时间:2018-11-22 10:39:06

标签: php laravel frameworks

我有以下控制器

$result = DB::table('customs_duties')
         ->select(DB::raw('sum(cd_cash) as cd_cash'),DB::raw('sum(cd_creditnote) as cd_creditnote'))
         ->where('fiscalyear', 1)->get();

我在以下两个字段中获得了实际结果:

dd($result);

但是当我想获取诸如

的特定字段结果时
dd($result->cd_cash);

我遇到以下错误:

  

此集合实例上不存在属性[cd_cash]。

4 个答案:

答案 0 :(得分:0)

您致电-> get();所以你收到一个数组。

$result = DB::table('customs_duties')->select(DB::raw('sum(cd_cash) as cd_cash'),DB::raw('sum(cd_creditnote) as cd_creditnote'))->where('fiscalyear', 1)->get();    
echo $result[0]->cd_cash;

将返回您的值,否则您可以调用-> first()。

$result = DB::table('customs_duties')->select(DB::raw('sum(cd_cash) as cd_cash'),DB::raw('sum(cd_creditnote) as cd_creditnote'))->where('fiscalyear', 1)->first();
echo $result->cd_cash;

答案 1 :(得分:0)

您应该尝试以下操作:

$result = DB::table('customs_duties')->select(DB::raw('sum(cd_cash) as cd_cash'),DB::raw('sum(cd_creditnote) as cd_creditnote'))->where('fiscalyear', 1)->first();

dd($result);

答案 2 :(得分:0)

您可以尝试下面给出的这段代码。

 $result = DB::table('customs_duties')
     ->select(DB::raw('sum(cd_cash) as cd_cash), sum(cd_creditnote) as cd_creditnote'))
     ->where('fiscalyear', 1)
     ->first();

答案 3 :(得分:0)

get给您收藏。 您可以使用->first();函数,也可以在foreach上使用$result,例如:@foreach ($result as $res) $res->cd_cash