【问题标题】:Lumen (Laravel): Partial JSON response returned while fetching large data using EloquentLumen (Laravel):使用 Eloquent 获取大数据时返回的部分 JSON 响应
【发布时间】:2015-11-14 10:08:57
【问题描述】:

我在使用 Laravel Eloquent 从数据库中检索数据(大约 3MB JSON)时收到部分 JSON 响应。

但是当我使用普通的 php 数据库连接检索相同的数据时,它工作正常。

我已经在我的 php.ini 文件中设置了 memory_limit 来处理大数据。

我需要在 Laravel (Lumen) 数据库配置中设置什么吗?

【问题讨论】:

    标签: php json laravel eloquent lumen


    【解决方案1】:

    几天前我在使用 lumen 框架时遇到了同样的问题。 要解决这个问题,您需要添加

    这一行 --> PDO::MYSQL_ATTR_MAX_BUFFER_SIZE => 20000000 ,

    这里 --> /vendor/illuminate/database/Connectors/Connector.phpoptions array(第 12 行)。

    MYSQL_ATTR_MAX_BUFFER_SIZE 的默认值设置为 1MB,因此您的结果将被截断。

    谢谢你:)

    【讨论】:

      【解决方案2】:

      你可以把它分块:

      $results = collect();
      
      Model::where('foo', 'bar')->chunk(function ($models) use ($results) {
          $results->merge($models->toArray());
      });
      
      return $results;
      

      【讨论】:

        猜你喜欢
        • 2014-08-27
        • 2016-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-02
        • 2012-03-08
        • 2014-03-10
        • 2014-08-07
        相关资源
        最近更新 更多