如何在 Eloquent 中为列的名称起别名

新手上路,请多包涵

我有一个名为 Eloquent 的雄辩模型:

 Products::where("actice", "=", true)->get()->toArray();

现在我想向它添加连接语句,我定义了一个范围查询:

 public function scopeJoinWithTags($query)
    {
        return $query->leftJoin("tags", "tags.id", "=", "products.tag_id");
    }

然后我们的主要查询变为:

 Products::where("actice", "=", true)->joinWithTags->get()->toArray();

我得到的是好的,这是我所期望的,但是我想将 tags 表的 name 属性更改为 tag_name,我应该怎么做?我的意思是,我在查询中的某处说:

  tags.name AS tag_name

所以在最终的结果数组中我这样做:

 $result[$i]['tag_name'];

虽然现在我必须:

 $result[$i]['name'];

原文由 Mostafa Talebi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 579
1 个回答

执行此操作的最简单方法是将您需要的字段添加到 get() 方法并为您要在其中重命名的字段添加别名。

 Products::where("actice", "=", true)
    ->joinWithTags
    ->get(['tags.name AS tag_name', 'products.*'])
    ->toArray();

原文由 turntwo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题