猿问

OctoberCMS 组件导致内存错误

我在 OctoberCMS 中制作了一个组件,它导致了内存错误。该组件只有一个非常简单的功能。我不知道为什么会导致这样的错误。


我在 php.ini 中将 memory_limit 编辑为 1024M,但没有任何改变。


组件文件


<?php

namespace 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


慕姐8265434
浏览 141回答 1
1回答

呼啦一阵风

我认为问题出在查询上,您正在尝试使用。试试这个而不是你的查询。public function loadComments() {&nbsp;$query = Comment::query();&nbsp;if (!empty($this->property('display'))) {&nbsp; &nbsp;$query = $query->limit($this->property('display'));&nbsp;}&nbsp;$query = $query->get();&nbsp;return $query;}是的,当您试图从表中获取有限的项目时,请不要忘记设置 OrderBy(),以便您可以获得所需的结果。
随时随地看视频慕课网APP
我要回答