让我们说我们正在使用Laravel的查询构建器:
$users = DB::table('really_long_table_name')
->select('really_long_table_name.id')
->get();
我正在寻找这个SQL的等价物:
really_long_table_name AS short_name
当我必须输入大量的选择和数据时,这将特别有用(或者通常我也会在select的列别名中包含别名,并且它会在结果数组中使用) . 没有任何表别名,我会有更多的输入,一切都变得不那么容易阅读 . 在laravel docs中找不到答案,有什么想法吗?
5 回答
与AMIB答案相同,对于软删除错误"Unknown column 'table_alias.deleted_at'",只需添加
->withTrashed()
然后自己处理,如->whereRaw('items_alias.deleted_at IS NULL')
在Eloquent中使用添加到您的模型之上
protected $table = 'table_name as alias'
..然后在您的查询中使用
ModelName::query()->select(alias.id, alias.name)
要在雄辩的模型上使用别名,请修改您的代码,如下所示:
这将自动将表前缀添加到表名并返回
Items
model的实例 . 不是一个简单的查询结果 . 添加DB::raw
可防止laravel将表前缀添加到别名 .这是人们如何做到这一点 . 我将举一个加入的例子,以便它变得非常清楚 .
希望这可以帮助 .
Laravel使用
AS
支持表和列上的别名 . 尝试让我们用一个很棒的
tinker
工具来看它