【问题标题】:Eloquent relations - query rows to columns雄辩的关系 - 查询行到列
【发布时间】:2015-03-26 19:42:37
【问题描述】:

我有三张桌子:

  • 用户 {id、first_name、last_name}
  • 申请者 {id, first_name, 姓氏......}
  • 标记 {idapplicant_iduser_id、标记}

marks 包含两个外键(applicant_id 和 user_id)。所以,逻辑是这样的:申请者多,用户少。用户需要审查每个申请人并为他设置一些标记。

期望的输出是显示(几乎)表“applicants”中的所有列(属性),并为表“users”中的每一行附加另一个users.last_name 在“标题”中,并在“正文”中为该申请人提供所需的标记。

我在这个应用程序中使用 Laravel 和 Eloquent,但不知道如何达到这个目的。

【问题讨论】:

    标签: php mysql laravel relational-database eloquent


    【解决方案1】:

    定义这种关系:

    class Applicant extends Eloquent {
        public function users(){
            return $this->belongsToMany('User', 'marks')->withPivot('mark');
        }
    }
    

    用法:

    $applicants = Applicant::with('users')->get();
    foreach($applicants as $applicant){
        echo $applicant->first_name; // etc...
        foreach($applicant->users as $user){
            echo $user->last_name;
            echo $user->pivot->mark;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 2016-07-01
      • 1970-01-01
      • 2016-02-26
      • 2018-12-09
      • 2014-01-16
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多