【发布时间】:2021-04-08 13:50:46
【问题描述】:
我有User_controller,还有函数user_details,这个函数返回视图名称user_details。
此视图包含多个细节,一般会有10到15组(行)细节显示在页面上(细节来自数据库使用user_details表)。
它工作正常,但在某些情况下,当用户详细信息达到 30 到 35 组(行)时,我在 error_log 文件中遇到错误
PHP 致命错误:已用完允许的 33554432 字节内存大小 (试图分配 5896720 字节)在 /laravel/framework/src/Illuminate/View/Engines/PhpEngine.php 上线 63 PHP 致命错误:允许的内存大小为 33554432 字节已用尽 (试图分配 6414336 字节)在 /vendor/symfony/http-foundation/Response.php 在第 1235 行
在下面一行返回错误:
return view('admin.views.user_details', ['user' => $user[0]
, 'user_details' => $user_details);
【问题讨论】:
-
增加 php.ini 中的内存限制,~32mb 是相当低的值,我建议至少设置 128mb。
-
我没有服务器访问权限,所以我无法修改服务器上的任何内容,是否还有其他方式,例如更改 laravel 文件以减少内存使用?
-
建议检查为什么脚本占用这么多内存。大多数情况下,这是不受欢迎的行为,因此应该更改脚本而不是内存限制。
-
在您的 UserController 中,向我们展示完整的
user_details()方法。看起来您从数据库中加载了太多数据(提示:$user[0])填充内存并在刀片渲染中崩溃。