Laravel雄辩的数据透视表模型

时间:2019-04-05 06:21:40

标签: php laravel eloquent

我在laravel雄辩中遇到问题。

我有3个表:memberssubscriptions,以及一个用于成员和订阅之间多对多关系的数据透视表:member_subscription

我还有另一个与member_subscription绑定的表,其中包含用于签入会员的签到位置。

我需要定义member_subscriptioncheck-ins之间的关系。我读了一些有关数据透视表的自定义模型的信息,如何实现呢?

1 个答案:

答案 0 :(得分:0)

您可以为member_subscription创建模型。然后,当您查询memberssubscriptions之间的关系时,可以使用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;