У меня проблема с хранением большого массива в Laravel 5.6 - PullRequest
0 голосов
/ 24 апреля 2019

Вот моя проблема.

Я сохраняю массив в сеансе 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 Ответ

1 голос
/ 24 апреля 2019

В сеансе laravel нет ограничений, и вы получите больше информации о сеансе с здесь

...