Мне тяжело работать с драйвером сеанса cookie в Laravel.
У меня простая форма с проверкой на месте. Это мой метод для сохранения данных этой формы:
public function store()
{
$this->validate(request(), [
'name' => 'required',
'title' => 'required',
'description' => 'required|max:600',
'image' => 'required|file|mimes:jpeg,png',
]);
$member = TeamMember::create(request()->all());
$member->addImage(request()->file('image'));
return redirect()->route('backoffice.team-members');
}
Довольно просто.
Проблема заключается в том, что при использовании драйвера сеанса cookie, если я сохраню эту форму с описанием длиной в 1024 символа, я буду перенаправлен обратно, но без данных флэш-памяти и не будет $errors
в представлении для следующего запрос на обработку.
Пример:
Это POST после использования этой строки:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce gravida eros ut leo commodo luctus. Nulla neque dui, laoreet quis felis in, porta tincidunt felis. Phasellus in lacus et sem condimentum ornare. Praesent vitae nisi tempus, gravida tortor eu, convallis dui. Cras lacinia posuere scelerisque. Vestibulum tincidunt purus id sollicitudin varius. Sed eros urna, mattis nec nunc eu, finibus suscipit ipsum. Aliquam varius faucibus congue. Vivamus convallis imperdiet sem a commodo. Proin cursus feugiat sem a pharetra. Curabitur rhoncus non quam sit amet lacinia. Sed ut nisl id odio faucibus vehicula vel ut erat. Vestibulum ut iaculis magna. Quisque sit amet massa sodales, suscipit nisl eu, dapibus elit. Morbi posuere ligula pretium commodo semper. Nam odio elit, rutrum finibus tortor eget, viverra viverra metus. Proin tincidunt tempor ex pretium rhoncus. Proin egestas erat sed eros congue, mollis gravida magna bibendum. Pellentesque vel bibendum nunc. Orci varius natoque penatibus et magnis dis viverra fusce.
В поле описания. 1024 байта, если быть точным.
Вместо этого, если я просто заполню поле дополнительными фиктивными данными, но ничего сумасшедшего:
Если я изменил драйвер сеанса на файл:
... он работает.
Но это не устраняет мою проблему. Мне нужно использовать драйвер cookie для сеанса, поскольку веб-сайт выпуска работает в трех разных датацентрах для достижения высокой доступности. Использование cookie для сеанса позволяет пользователю нажимать на любой из 3-х серверов и по-прежнему продолжать его запрос без необходимости использовать какой-либо липкий сеанс или любой центральный драйвер сеанса.
Использование базы данных в качестве драйвера, также находящегося в кластере с HA, не является вариантом, так как это веб-сайт с очень высоким трафиком, и это будет запись по запросу, которая не кажется привлекательной вообще. Я хотел бы предотвратить это любой ценой.
Во всяком случае это можно решить?
Я должен сказать, что это backoffice на веб-сайте, но вскоре пользователь в интерфейсе сможет также писать более 1024 символов в текстовом поле... так что если я просто изменил драйвер для backoffice, помогите, как мы будем работать в том же для наших пользователей.