我在laravel雄辩中遇到问题。
我有3个表:members
,subscriptions
,以及一个用于成员和订阅之间多对多关系的数据透视表:member_subscription
。
我还有另一个与member_subscription
绑定的表,其中包含用于签入会员的签到位置。
我需要定义member_subscription
和check-ins
之间的关系。我读了一些有关数据透视表的自定义模型的信息,如何实现呢?
答案 0 :(得分:0)
您可以为member_subscription
创建模型。然后,当您查询members
和subscriptions
之间的关系时,可以使用using
函数。
在会员模型中:
public function subscriptions()
{
return $this->belongsToMany('App\Subscription')->using('App\MemberSubscription');
}
在订阅模型中:
public function members()
{
return $this->belongsToMany('App\Member')->using('App\MemberSubscription');
}
现在,在您的MemberSubscription
模型中,定义与签到的关系:
public function checkins()
{
return $this->hasMany('App\Checkins');
}
现在您可以执行以下操作:
$member->subscriptions()->first()->pivot; // Returns a MemberSubscription model
$member->subscriptions()->first()->pivot->checkins;