我在 OctoberCMS 中制作了一个组件,它导致了内存错误。该组件只有一个非常简单的功能。我不知道为什么会导致这样的错误。我在 php.ini 中将 memory_limit 编辑为 1024M,但没有任何改变。组件文件<?phpnamespace Jiwon\Byapps\Components;use Cms\Classes\Page;use Cms\Classes\ComponentBase;use Exception;use Jiwon\Byapps\Models\Comment;class Comments extends ComponentBase{ public $comments; public function componentDetails() { return [ 'name' => 'Comment List', 'description' => 'comment list' ]; } public function defineProperties() { return [ 'display' => [ 'title' => 'number of the comments', 'description' => 'number of the comments list', 'default' => 10, 'validationPattern' => '^[0-9]+$', 'validationMessage' => 'only number' ], ]; } public function onRun() { $this->comments = $this->loadComments(); } protected function loadComments() { $query = Comment::all(); if ($this->property('display') > 0) { $query = $query->take($this->property('display')); } return $query; }}?>我把这个组件放在部分的一边,这个错误显示在每个页面中。允许的内存大小为 134217728 字节耗尽(尝试分配 8192 字节)/home/ljw/public_html/byapps_cms/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php line 290
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
我认为问题出在查询上,您正在尝试使用。试试这个而不是你的查询。
public function loadComments() {
$query = Comment::query();
if (!empty($this->property('display'))) {
$query = $query->limit($this->property('display'));
}
$query = $query->get();
return $query;
}
是的,当您试图从表中获取有限的项目时,请不要忘记设置 OrderBy(),以便您可以获得所需的结果。
- 1 回答
- 0 关注
- 140 浏览
添加回答
举报
0/150
提交
取消