Comments 7
Вообще не понял в чем проблема и для чего все это)
чтобы реализовать nullable|date
валидацию?
По дефолту laravel преобразует пустую (или состоящую только из пробельных символов) к null. Это поведение не всегда подходит. Если же его отключить, то правила валидации не срабатывают на пустые строки (которые до этого автоматически преобразовывались к null).
Почему это не подходит? null это ничего, пустая строка это тоже ничего
Например по дефолту (без выключения нормализации), когда приходит json
{"field": ""}
И мы делаем $model.fill($validated)
а field при этом не nullable - мы получим ошибку.
Да и вообще, ситуации, когда нужно различать пустые строки, null и, например, 0 - существуют.
null это ничего, пустая строка это тоже ничего
Между null и пустой строкой есть разница. Обычно, она применяется для таких сценариев:
Null - когда значение в переменную ещё никакой код не устанавливал. То есть значение не установлено.
Пустая строка - когда код с переменной уже поработал, и решил что нужно присвоить и именно пустую строку. То есть значение намеренно установлено, и это значение - пустая строка.
Немного курочим стандартный валидатор Laravel или первый опыт с фасадами и сервис провайдерами