如何在laravel查询生成器中别名sql select列



我有一个这样的查询,我不知道如何为每个表的选择列别名。你能帮我吗?

$columns = array_merge(json_decode($data->columns), json_decode($data->columns2));
$result = DB::table($data->type)
->select($columns)
->join('tabs', 'data.id', '=', 'tabs.id')
->get();

要回答您的问题,您可以像在SQL:中那样添加AS newColumnName

CCD_ 2。

此外,您真的不想像这样将未初始化的表名和列名传递给查询。它们没有经过Laravel的消毒,是一个潜在的漏洞。更多信息可在调出框中找到,网址为https://laravel.com/docs/8.x/queries#where-条款

根据我总结的注释,您希望从$data->columns中选择列,并像在$data->columns2中一样对它们进行别名。我不知道两者的数据结构,但我认为你的意思是这样的:

$select = array_map(
function($column, $alias) {
return "{$column} AS {$alias}";
}, 
$data->columns,
$data->columns2
);
var_dump($select);

这是一个沙盒:http://sandbox.onlinephpfunctions.com/code/12487b8f2d590aa9f0d7a6cb0d7d4f1f067b4cb0

最新更新