【问题标题】:Laravel relationship between multiple modelsLaravel 多个模型之间的关系
【发布时间】:2018-05-23 05:41:30
【问题描述】:

我有以下模型用户、测试、尝试。

用户可以访问测试(多对多)

public function tests(){
    return $this->belongsToMany('App\Test');
}

我有一张表attempts 有以下列:

- user_id
- test_id

我需要获取所有相关尝试的用户测试。

我怎样才能通过使用预先加载获得它?

谢谢。

【问题讨论】:

  • 这些尝试与哪些用户或测试有关?
  • 尝试与用户相关。 return $this->hasMany('App\Attempt');

标签: laravel laravel-5 relationship models


【解决方案1】:

确保首先设置关系的反面,这样您的测试模型将需要与用户的 belongsToMany 关系,如下所示:

public function Users(){
   return $this->belongsToMany('App\User');
}

您可以通过将附加参数传递给 belongsToMany 来指定数据透视表的表名,如下所示:

public function Users(){
   return $this->belongsToMany('App\User', 'attempts');
}

要从枢轴中急切加载列,您可以使用 withPivot 方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2023-03-27
    • 2011-11-25
    • 2016-02-06
    相关资源
    最近更新 更多