首页 > 解决方案 > 当我在 laravel 中编写自定义查询时,别名不起作用

问题描述

我有以下控制器

$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]。

标签: phplaravelframeworks

解决方案


你调用 ->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;

推荐阅读