【问题标题】:Laravel hasMany relation on multiple columns [duplicate]Laravel在多列上有很多关系[重复]
【发布时间】:2016-01-15 10:05:34
【问题描述】:

我正在尝试在我无法更改的现有数据库上设置 Laravel 关系。

在这个数据库中有一个名为Teams 的表,其列:

  • 领队_1
  • 领队_2

此外,还有一个名为 Users 的表,其中包含一列:

  • User_id

这些表之间的关系如下:Users.User_id = Teams.Teamleader_1 OR Users.User_id = Teams.Teamleader 2

如何在两个团队领导列上的用户和团队之间设置 hasMany 关系?

【问题讨论】:

    标签: php laravel laravel-5 eloquent laravel-5.1


    【解决方案1】:

    首先,您需要在团队模型中定义 2 个关系:

    public function teamleader1() {
      return $this->belongsTo(User::class, 'Teamleader_1', 'User_id');
    }
    
    public function teamleader2() {
      return $this->belongsTo(User::class, 'Teamleader_2', 'User_id');
    }
    

    一旦你有了它,定义一个访问器,它将从这些关系中的任何一个中获取团队负责人:

    public function getTeamleaderAttribute() {
      return $this->teamleader1 ?: $this->teamleader2;
    }
    

    一旦你拥有它,你应该可以通过调用来访问用户:

    $teamLeader = $team->teamleader;
    

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 2014-07-10
      • 2015-08-05
      • 2016-10-12
      • 2017-06-15
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      相关资源
      最近更新 更多