在 laravel 查询生成器中保留别名
preserving aliases in laravel query builder
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
主要问题是我有很多不同的查询,我想给它们加上别名,然后用另一个查询为图表准备数据。如果别名消失就很难了。
每个查询只能有一个select()
。 $var
被传递到 getNames()
是一个已经有 select()
的查询,因此添加更多 select()
将覆盖之前的查询。
尝试从 getNames()
中删除 select()
并测试是否得到结果。
function getNames($var){
return $var->where('age', 10)->get();
}
请记住,您使用的是 'query builder',这意味着您要添加的每个查询约束都被添加到同一个查询中,而不是不同的查询中。一旦您尝试获取结果数据集(如调用 get()
、first()
等
,整个查询将实际构建并执行
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
主要问题是我有很多不同的查询,我想给它们加上别名,然后用另一个查询为图表准备数据。如果别名消失就很难了。
每个查询只能有一个select()
。 $var
被传递到 getNames()
是一个已经有 select()
的查询,因此添加更多 select()
将覆盖之前的查询。
尝试从 getNames()
中删除 select()
并测试是否得到结果。
function getNames($var){
return $var->where('age', 10)->get();
}
请记住,您使用的是 'query builder',这意味着您要添加的每个查询约束都被添加到同一个查询中,而不是不同的查询中。一旦您尝试获取结果数据集(如调用 get()
、first()
等