我在Laravel 5.6中存储大型数组时遇到问题

时间:2019-04-24 05:49:58

标签: php laravel laravel-5 laravel-session

这是我的问题。

我将数组存储在Laravel会话中。

session(['array_cache' => $array]);

数组看起来像这样:

array:59 [▼
  0 => array:18 [▼
    "id" => 2
    "type" => 3
    "partner_id" => 1
    "username" => "Pink11034519"
    "firstname" => "Jade"
    "lastname" => "Altenwerth"
    "age" => 18
    "gender" => "f"
    "email" => "brisa12@lubowitz.com"
    "mobile" => "406-361-6252 x4876"
    "rank_id" => 3
    "status" => 1
    "avatar" => ""
    "timezone" => "America/Anguilla"
    "available" => "7:00-11:30 | 13:00-17:00"
    "created_at" => "2018-08-28 02:56:26"
    "updated_at" => "2018-09-12 21:03:50"
    "pivot" => array:3 [▼
      "employee_id" => 1
      "storable_id" => 2
      "storable_type" => "Employee"
    ]
  ]
  1 => array:18 [▶]
  2 => array:18 [▶]
  3 => array:18 [▶]
  ....
  57 => array:18 [▶]
  58 => array:18 [▶]
]

当我像上面那样存储超过55个元素的数组时,会话中断,我退出了。

如果减少子数组中的数据量,则能够在会话再次中断之前增加存储的子数组的数量。

所以,看起来大小很重要。

Laravel会话中存储的阵列大小是否有限制?

或者问题可能出在Laravel自动序列化上?

有人遇到过这样的事情吗?

我很欣赏一些想法。


编辑:这是发生了什么。

项目会话存储在数据库中。

“有效载荷”列的标准Laravel会话表设置为TEXT,其中包含:65,535个字符。

Laravel序列化和base64编码会话有效负载。这样可以很快吃掉允许的字符。

关于将存储更改为文件的决定不是我自己决定的,因此尽管对存储字符串的潜在大小不太满意,但我还是将TEXT更改为MEDIUMTEXT以增加存储容量。我将写一条备忘录并仔细观察它的工作原理。

1 个答案:

答案 0 :(得分:1)

laravel会话没有限制,您将通过here

了解有关会话的更多信息