php - Laravel 在哪里枢轴
问题描述
我有订阅系统。每个订阅都有一个类型,每个订阅都有subscription_type
文章。创建订阅时
articles
,应在表中创建subscription type
大小所在的位置。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
创建a 时articles
,应在表中创建subscription_type_articles
大小所在的位置。M
subscription_articles
我这样尝试:
$articles = $subscription->type->articles()->wherePivot('size', '=', 'M');
我收到此错误:
local.ERROR: 允许的内存大小为 134217728 字节已用尽(试图分配 130027520 字节)
显然有问题,会是什么?
解决方案
想通了,我应该->get();
在方法结束时调用。所以结果是:
$articles = $subscription->type->articles()->wherePivot('size', '=', 'M')->get();