Laravel在哪里枢轴

时间:2019-03-24 13:17:07

标签: php database laravel eloquent

我有一个订阅系统。每个订阅都有一个类型,每个subscription_type都有文章。创建订阅后, 应该在articles表中创建大小为subscription type的{​​{1}}中的M

我有这个表结构:

subscription_articles

关系是这样的:

订阅模型:

subscription
- id
- name
- subscription_type_id

subscription_type
- id
- name

article
- id
- name
- price

subscription_articles
- id
- subscription_id
- article_id

subscription_type_articles
- id
- subscription_type_id
- article_id
- size

订阅类型模型:

/**
 * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
 */
public function type()
{
    return $this->belongsTo(SubscriptionType::class, 'subscription_type_id');
}

在创建/** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function articles() { return $this->belongsToMany(Article::class, 'subscription_type_articles'); } 时,应在以下位置创建subscription的{​​{1}}:articles中耦合的subscription_type_articles M表。

我这样尝试:

subscription_articles

我收到此错误:

  

local.ERROR:允许的内存大小为134217728字节已用尽(尝试   分配130027520字节)

显然有什么问题,那是什么?

1 个答案:

答案 0 :(得分:0)

弄清楚了,我应该在方法末尾调用->get();。结果是:

$articles = $subscription->type->articles()->wherePivot('size', '=', 'M')->get();