查询构建器对象在之前构建的对象中看不到别名 (Laravel)

Query builder object doesn't see aliases in previously built object (Laravel)

这是我的第一个查询:

$base=\DB::table('user')->select('firstname as name');

然后我想访问第二个查询中的别名列:

$base->select('name');

但我看到错误。不过,我可以从 table 用户访问所有列。有没有办法更改它以便我可以在第二个查询中使用别名?

完整代码在这里:

$base=\DB::table('user')->select('firstname as name');
var_dump($base->get());//Everything is ok, I see the aliases 
var_dump($base->select('name')->get);//I see nothing, there's no column 'name'

更多代码在这里:

function getPerson(){
    return \DB::table('user')->select('firstname as name', 'age');
}

function getPet(){
    return \DB::table('pet')->select('petname as name', 'age');
}

function getNames($var){
    return $var->select('name')->where('age', 10)->get();
}

$base = getNames(getPerson());//empty here
$base = getNames(getPet());//empty here

主要问题是我有很多不同的查询,我想给它们加上别名,然后用另一个查询为图表准备数据

您不能创建永久的列别名。但是,您可以创建一个 view, which will contain fields named as you wish. And then point your model to this view as a regular table via $table 属性 的模型。