Intereting Posts
При использовании Kohana DB, как избежать дублирования кода при необходимости подсчета для разбивки на страницы? Как использовать функцию checkdate, если тип ввода – текст за год? Используя документ PHP DOM, выберите элемент HTML по его классу и получите его текст. Magento 1.7 с Wamp 2.2 Необходимо ли проверять или удалять строку обратного вызова jsonp PHP html формат не работает Форматировать дату из базы данных? Laravel 4.2 Правила проверки – текущий пароль должен соответствовать значению базы данных Регулярное выражение PHP – повторение соответствия группы Предотвратите прямой доступ к файлу включения php Перепишите все запросы, чтобы не требовалось расширение .php с помощью mod_rewrite RewriteRule PHP: проверка нечувствительности к регистру OS X: автоматический запуск PHP FCGI через startd при запуске системы Может ли PHP и C ++ передавать данные между собой? присваивание переменной php внутри if conditional

Проверка даты и времени Laravel 5.1 позволяет использовать два формата

Я использую следующую проверку даты для входящего запроса POST.

'trep_txn_date' => 'date_format:"Ymd H:i:su"' 

Это позволит только дату такого типа, т.е. 2012-01-21 15: 59: 44,8

Я также хочу разрешить дату без TIME, например, 2012-01-21, которая при отправке в mysql db будет автоматически сохранена как 2012-01-21 00: 00: 00.0

Есть ли способ, которым я могу это сделать, используя существующие правила валидации Laravel. Есть ли способ определить несколько форматов в правиле date_format, как показано ниже.

 'trep_txn_date' => 'date_format:"Ymd H:i:su","Ymd"' //btw this didn't work. 

Благодаря,

К

Related of "Проверка даты и времени Laravel 5.1 позволяет использовать два формата"

Валидатор date_format принимает только один формат даты в качестве параметра. Чтобы иметь возможность использовать несколько форматов, вам нужно создать собственное правило проверки. К счастью, это довольно просто.

Вы можете определить многоформатную проверку даты в AppServiceProvider со следующим кодом:

 class AppServiceProvider extends ServiceProvider { public function boot() { Validator::extend('date_multi_format', function($attribute, $value, $formats) { // iterate through all formats foreach($formats as $format) { // parse date with current format $parsed = date_parse_from_format($format, $value); // if value matches given format return true=validation succeeded if ($parsed['error_count'] === 0 && $parsed['warning_count'] === 0) { return true; } } // value did not match any of the provided formats, so return false=validation failed return false; }); } } 

Вы можете позже использовать это новое правило проверки следующим образом:

 'trep_txn_date' => 'date_multi_format:"Ymd H:i:su","Ymd"' 

Подробнее о том, как создавать пользовательские правила проверки, читайте здесь: http://laravel.com/docs/5.1/validation#custom-validation-rules