【发布时间】:2015-11-14 10:08:57
【问题描述】:
我在使用 Laravel Eloquent 从数据库中检索数据(大约 3MB JSON)时收到部分 JSON 响应。
但是当我使用普通的 php 数据库连接检索相同的数据时,它工作正常。
我已经在我的 php.ini 文件中设置了 memory_limit 来处理大数据。
我需要在 Laravel (Lumen) 数据库配置中设置什么吗?
【问题讨论】:
标签: php json laravel eloquent lumen
我在使用 Laravel Eloquent 从数据库中检索数据(大约 3MB JSON)时收到部分 JSON 响应。
但是当我使用普通的 php 数据库连接检索相同的数据时,它工作正常。
我已经在我的 php.ini 文件中设置了 memory_limit 来处理大数据。
我需要在 Laravel (Lumen) 数据库配置中设置什么吗?
【问题讨论】:
标签: php json laravel eloquent lumen
几天前我在使用 lumen 框架时遇到了同样的问题。 要解决这个问题,您需要添加
这一行 --> PDO::MYSQL_ATTR_MAX_BUFFER_SIZE => 20000000 ,
这里 --> /vendor/illuminate/database/Connectors/Connector.php 在options array(第 12 行)。
MYSQL_ATTR_MAX_BUFFER_SIZE 的默认值设置为 1MB,因此您的结果将被截断。
谢谢你:)
【讨论】:
你可以把它分块:
$results = collect();
Model::where('foo', 'bar')->chunk(function ($models) use ($results) {
$results->merge($models->toArray());
});
return $results;
【讨论】: