当前位置: 首页 > 知识库问答 >
问题:

Laravel eloquent-在连接表时防止重写值

席成仁
2023-03-14
class Account extends Eloquent
{
  protected $table = 'account';

  /* [...] */

  public function group() {
    return $this->belongsTo('Group');
  }
}
class Role extends Eloquent {

  protected $table = 'role';

  public function accounts() {
    return $this->hasMany('Account');
  }

}
account
-------
id
name
role_id (nullable)

role
----
id
name

我需要按role.name列对帐户进行排序。但是after join(或leftJoin)值被第二个表中的值覆盖。下面是一些代码

$response = Account::with('role')->leftJoin('group', 'group.id', '=', 'account.group_id')->get();

更改表中字段的名称(如:id->account_id和:id->role_id)将是一种解决办法,但我不是这样的情况--需要为每个表设置名为id的主键。

[编辑]是的,所以问题很简单:如何解决这个问题?

共有1个答案

吕作人
2023-03-14

您可以像在普通SQL查询中一样使用“select”:

$response = Account::with('role')
    ->select('account.*')
    ->leftJoin('group', 'group.id', '=', 'account.group_id')
    ->get();

http://laravel.com/docs/queries#selects

 类似资料:
  • 一般把token放在请求头呢?还是每次发消息都携带呢?如果放在请求头的话,怎么重置呢?当重新连接的话,又会引发一个socketid变化的问题,又该怎么处理好点?

  • 是否有一种方法可以防止重写我在映射器类中为其提供了实现的特定方法? null 我的映射器类如下所示: 然后,Mapstruct生成如下所示的实现:

  • 我有一个cron,它正在使用fwrite函数,在cron运行1小时后,它将崩溃并出现错误: fwrite():发送29字节失败,对等方重置了errno=104连接 在线: 在这之后,我总是通过 似乎PHP内核和DNS解析器内部有问题,因为在这之后,我在将主机名解析到ip地址时遇到了一些问题。在我的函数中,还使用了和函数。如何预防这些问题?

  • 我尝试添加多个csv文件。我已经按照下面的链接。如何在Python中合并200个csv文件 但我的价值观从 到 如何预防这种情况? 提前谢谢

  • 在开始利用Tomcat的“版本”功能时,我发现当Tomcat卸载以前版本的war文件时,Spring似乎也在破坏连接池。这是一个问题,因为该应用程序的其他(较新)版本需要该连接池 我如何防止这种情况? 脚本: 部署~/tomcat/webapps/helloworld##v1.war并启动tomcat HikariCP池正确初始化 用户登录 通过Tomcat Manager和Cargo部署新版本(

  • 我正在使用Knex.js来处理与数据库的连接。我正在尝试防止连接池破坏空闲的连接。 我的配置是这样的 然而,我仍然不断得到 在一段时间不活动后。 据我所知,当足够的时间过去时,应该将连接从池中丢弃。因此,如果连接有一段时间没有使用(这就是我的情况),池中将没有连接,我尝试的第一次调用将失败,并出现给定错误。随后的调用顺利进行(直到新的超时) 我的问题是——如何防止这种情况? 编辑 在我的应用空闲一