【发布时间】:2019-03-25 21:13:18
【问题描述】:
我有一个订阅系统。每个订阅都有一个类型,每个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 时,应在subscription_type_articles 中创建articles,其中大小为M
subscription_articles 表。
我是这样尝试的:
$articles = $subscription->type->articles()->wherePivot('size', '=', 'M');
我收到此错误:
local.ERROR: 允许的内存大小为 134217728 字节已用尽(已尝试 分配130027520字节)
显然有问题,会是什么?
【问题讨论】:
-
这是 php - memory_limit 错误,您需要编辑您的
php.ini文件。将memory_limit编辑为您想要的值。一种在运行时覆盖php代码中memory_limit的简单方法,在articles()中尝试ini_set('memory_limit', '-1');看看是否有效 -
那不行。
-
也许试试:
->wherePivot('size', 'M');- 事实上,正如我所说,这个 Allowed memory size exhausted 错误与 memory_limit 的 php 配置有关 -
虽然这是内存限制错误,但解决方法不是增加内存。它可能是某种不应该存在的循环。我无法根据信息判断,但我建议通过composer安装laravel调试栏并尝试查看查询选项卡。
-
您能提供更多代码吗?例如你的控制器
标签: php database laravel eloquent