php - 在 Laravel 查询生成器中保留别名

标签 php mysql sql 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();
}

请记住,您正在使用“查询生成器”,这意味着您要添加的每个查询约束都将添加到同一查询中,而不是不同的查询中。一旦您尝试获取结果数据集(例如调用 get()first() 等),整个查询就会实际构建并执行。

关于php - 在 Laravel 查询生成器中保留别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32477203/

相关文章:

php - 为 session 设置 MySQL 时区

sql - 拆分 SQL 语句

php - 是否可以断开 http 客户端与 PHP 的连接?

MySQL 不断崩溃

php - 建模关联模型(DRY、KISS、SKINNY CONTROLLER 和 FAT 模型)

mysql - 使用 Unicode 字符将 Pandas DataFrame 导出到 MySQL

sql - 在 MySql 中使用别名

Mysql查询连接多个表的数据

php - PHP 代码中 undefined offset 错误

php - 使用 PHP 和 jQuery 进行 ReCaptcha 验证