PHP“;“内存不足”;在codeigniter中的模型中加载模型时出错
在另一个模型中加载模型时,我遇到以下PHP错误:PHP“;“内存不足”;在codeigniter中的模型中加载模型时出错,php,codeigniter,out-of-memory,Php,Codeigniter,Out Of Memory,在另一个模型中加载模型时,我遇到以下PHP错误: Fatal error: Out of memory (allocated 74448896) (tried to allocate 65484 bytes) in /homepages/8/d315990455/htdocs/smileyou/Smileyou2.0/system/core/Loader.php on line 9 我的PHP内存限制是120M(我想这对于我正在开发的应用程序来说已经足够了)。 为了调整应用程序的大小,我使用了
Fatal error: Out of memory (allocated 74448896) (tried to allocate 65484 bytes)
in /homepages/8/d315990455/htdocs/smileyou/Smileyou2.0/system/core/Loader.php on line 9
我的PHP内存限制是120M(我想这对于我正在开发的应用程序来说已经足够了)。
为了调整应用程序的大小,我使用了11个模型,每个模型中平均有4-5个函数。每行150-200行代码
我已经读到在CodeIgniter的模型中加载模型(我总是在类构造函数中这样做)不是一个好的实践,但是直到现在,一切都很好。。。
编辑:如果我尝试在函数中加载它们,而不是在类构造函数中加载它们,它也不会工作
有没有人经历过同样的问题?任何帮助都将不胜感激。提前感谢。我不熟悉CI活动记录的实现,尽管它是一个过时的PHP4框架。在运行密集型数据库查询并为这些结果生成活动记录模型的情况下,请尝试使用原始数据库查询: 正如我所说,我不熟悉CI,尽管我快速浏览了一下文档。。您应该能够执行以下操作:
return $this->db
->select($array)
->from('user')
->join('other','other.user_id = user.id','left')
->where($where)
->get()
->result();
好吧,经过艰苦的调试代码,我已经让它工作。。。我将其记录在社区中,仅供记录: 似乎(我猜)CodeIgniter在模型内的嵌套模型加载级别上有一个限制 正如我所说,在我的例子中,我有11个模型(每个模型对应一个数据库表)。 我必须编写的算法需要大量的“嵌套”,因为例如,我的许多模型函数可能需要其他模型的4/5函数,而这反过来又需要其他模型的函数。。。等等 因此,在这种情况下,我通过(硬)挖掘算法来修复它,并且不加载某些模型(那些产生内存泄漏的模型),即使某些函数需要它们,因为(我猜)它们已经加载到“调用”(前面的)模型中 这对我很管用。 顺便说一句,我接受任何更优雅的方法来在CodeIgniter中实现这样一个复杂的算法。所以请随意发布
谢谢。我也面临同样的问题将php.ini中的内存限制从8M增加到256M。检查内存限制,并根据需要进行调整。对于具有更好活动记录的现代php 5框架,请尝试Laravel 4.0,其雄辩的模型性能非常好。。。