首页 > 解决方案 > Laravel 多对多中间表

问题描述

我试图弄清楚如何在 Laravel 中使用 EloquentORM 解决以下问题。

我有 3 张桌子。

User:
-id

Agreement:
-id
-title
-date_created

Accepted_Agreements:
-user_id
-agreement_id
-date_accepted

那么,我怎样才能获得特定用户的所有协议和 -date_accepted 列?

标签: phplaraveleloquent

解决方案


假设您在协议()和用户()函数中定义了多对多关系。

public function agreements() {
   return $this->belongsToMany('App\Agreement')->withPivot('date_accepted');
}

然后您可以通过以下方式获得所需的内容:

$agreements = $user->agreements;

foreach($agreements as $agreement) {
   $dateAccepted = $agreement->pivot->date_accepted;
}

推荐阅读