当前位置: 首页 > 面试题库 >

如何在Eloquent中为列名加上别名

马新觉
2023-03-14
问题内容

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

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

现在,我想向其中添加连接语句,我定义了一个scopeQuery与:

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

然后我们的主要查询更改为:

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

我得到的没问题,这是我所期望的,但是我想将标签表的name属性更改为tag_name,该怎么办?我的意思是,我在查询中的某处说:

 tags.name AS tag_name

因此,在最终结果数组中,我这样做:

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

现在,我必须:

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

问题答案:

最简单的方法是将所需字段添加到get()方法中,并为要重命名的字段添加别名。

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


 类似资料:
  • 问题内容: 是否可以在PHP中使用其他名称对函数进行别名?假设我们有一个名称为的函数。有没有一种方法可以使别名为? 现在,我正在这样做: 问题答案: 仅PHP 5.6+ 从PHP 5.6开始,可以通过导入功能来别名函数:

  • 问题内容: 我正在尝试做这样的事情。但是我收到一个未知的列错误: 基本上,我只想使用别名,这样就不需要执行之前执行的操作。在mysql中这可能吗? 问题答案: 考虑使用子查询,例如:

  • 如何选择“按别名列分组”?我正在使用kotlin暴露。

  • 问题内容: 我尝试使用MySQL: 我得到这个: 注意: 此查询是自动生成的,条件基于表别名。 为什么会出现此错误? 有什么方法可以在where子句中使用表别名? 这是MySQL特有的吗? 问题答案: 您可以这样使用SQL:

  • 我有一个标准的多态类型<code>Shape</code>,我可以使用标准的<code>@JsonTypeInfo</code>机制对其进行多态反序列化: 但是,我想添加<code>作为鉴别器属性的别名,以便以下JSON字符串由abstract类反序列化: AND { “?”: “ 这样这个测试案例就会通过 我为什么要这样做?:我试图将两个不同的现有可区分联合编码方案反序列化到同一个类层次结构中

  • 问题内容: 我的脚本是这样的: 生成的sql是: 因此,执行sql时出现错误。 我有两个问题: 为什么用表的别名代替? 为什么in have子句不被替换,如何解决? 谢谢你的建议… 问题答案: 1:为什么表的别名是“ i”而不是“ p”? 2:为什么having子句中的“ num_a”没有被“ i__0”替换,如何解决? 这两个问题都可以简单回答:Doctrine使用它自己的别名进行查询。您不需要