Не знаю как у вас, но у меня возникала очень неприятная ситуация, когда пользователь случайно вводил лишний пробел в конце или вначале, а потом не мог получить доступ к своему профилю. Конечно, в таких критических местах, как вход на сайт, стоило бы делать предварительную обработку данных. Однако, я решил, что операция по удалению лишних пробелов, в общем-то, довольно распространенная и можно ее сделать глобальной. В этом нам помогут чудесные [middleware](https://laravel.ru/docs/v5/middleware). Наше расширение будет обрабатывать любые входящие данные (за исключением указанных). Оно будет обрезать лишние пробелы и символы табуляции у строк, а также преобразовывать пустые строки в `null` значение. Я не буду проходить весь процесс создания middleware, для этого есть справка. Если честно, вы можете вообще не заморачиваться, добавить себе этот функционал и не разбираться. Это расширение (и не только) находится в моем репозитории [вот здесь][src]. Имея в своем вооружение подобный middleware вы можете установить его глобально, и тогда оно будет работать при каждом запросе, либо дать ему имя и использовать там, где это необходимо. Основная проблема здесь в том, чтобы все остальные функции продолжали работать в штатном режиме, чтобы `Input::all()` и `Input::only()` возвращали уже обработанные данные. Как это сделать? Да очень просто: ```PHP $request->merge($data); ``` Таким образом мы можем добавить новые данные входящие, либо заменить старые. Осталось их только обработать: ```PHP $data = $request->all(); array_walk_recursive($data, function (&$value) { if (is_string($value)) { $value = trim($value); } }); $request->merge($data); ``` Здесь, однако, могут возникнуть проблемы. Некоторые значения (например, пароли) не нужно обрабатывать, поэтому необходимо внести небольшую модификацию: ```PHP $except = [ 'password', 'password_confirmation' ]; $data = $request->except($except); ``` Осталось только оформить в конечный middleware. Полный исходный код вы можете найти [здесь][src] вместе с некоторыми улучшениями: - middleware принимает список ключей, которые не должны обрабатываться, например: `$this->middleware('process:pwd,pwd_confirmation');` - преобразует пустые строки в `null` значения (приятнее в БД хранить NULL, а не пустые строки). Этот пример можно дальше расширять и добавлять дополнительные обработчики. Особенностью такого подхода является то, что обработка происходит _ДО_ любой _проверки_ данных, что иногда бывает необходимым, и при этом нет необходимости вмешиваться в другие системы сайта. [src]: https://github.com/lazychaser/laravel-common/blob/master/Kalnoy/LaravelCommon/Http/Middleware/ProcessInput.php