【发布时间】:2015-12-03 00:44:57
【问题描述】:
这是我的第一个查询:
$base=\DB::table('user')->select('firstname as name');
然后我想在第二个查询中访问别名列:
$base->select('name');
但我看到了错误。我可以从表用户访问所有列。有没有办法改变它,以便我可以在第二个查询中使用别名?
完整代码在这里:
$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
主要问题是我有很多不同的查询,我想给它们加上别名,然后用另一个查询为图表准备数据
【问题讨论】:
-
第二个查询是什么意思?请发布整个代码,以便我们查看关系,因为听起来您可能在这里误解了一些东西。
-
你能发布 var_dump($base->get()) 的结果吗? ?
-
请发布完整的代码你想如何使用第二个查询。因为
$base已经包含了name,所以我看不出你为什么要再做$base->select('name')。 -
请发布完整代码。您应该使用
->get作为->get()和->where('age', 10)作为->where('age', '=', 10)。您还选择了name2 次。看不到原因。你如何测试它是否为空?您是否在日志中看到错误?
标签: php mysql laravel query-builder