Валидатор даты правил Yii Framework 2.0

Я использую Yii Framework 2.0. У меня есть форма с полем ввода текста, которая предназначена для даты. Я прочитал Yii Framework 2.0 о Класс yii \ валидаторы \ Validator и известны все ключи валидатора, которые могут быть использованы внутри правила () метод в модельном классе. Когда я использую Дата ключ, как показано ниже, он ничего не проверяет. Это означает, что я все еще могу поместить некоторый текст в это поле ввода и могу опубликовать форму.

Когда я изменил это в логический или же Эл. адрес, Я мог видеть, что это очень хорошо проверяется, когда я помещаю что-то неправильно в поле ввода. Как я могу проверить значение даты внутри поля ввода с помощью Yii Framework 2.0?

Мой метод rules ():

public function rules()
{
return [
[['inputfield_date'], 'required'],
[['inputfield_date'], 'safe'],
[['inputfield_date'], 'date'],
];
}

Моя страница просмотра:

<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'inputfield_date')->textInput(); ?>
<?php ActiveForm::end(); ?>

14

Решение

Мальчишку йии сосут. Они даже не дают пример. Исходя из ответа О’Коннора, это сработало для меня, так как я присваивал значение в 2015-09-11 формат.

// Rule
[['event_date'], 'date', 'format' => 'php:Y-m-d']
// Assignment
$agkn->event_date = date('Y-m-d');

документы даже не указать где format или же timestampAttribute пришли или как их использовать. Это даже не говорит, что, черт возьми from_date а также to_date являются. И больше всего, нет примеров!

22

Другие решения

Рабочий раствор. Мой метод rules ():

public function rules()
{
return [
[['inputfield_date'], 'required'],
[['inputfield_date'], 'safe'],
['inputfield_date', 'date', 'format' => 'yyyy-M-d H:m:s'],
];
}

Моя форма на странице просмотра:

<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'inputfield_date')->textInput(); ?>
<?php ActiveForm::end(); ?>

Мой метод в контроллере:

if ($model->load(Yii::$app->request->post()) && $model->validate()):
if($model->save()):
// some other code here.....
endif;
endif;

Обратите внимание, что формат даты зависит от того, как вы определяете свое поле ввода формата даты. Еще раз обратите внимание, что это не валидатор AJAX. После нажатия кнопки «Отправить» вы увидите сообщение об ошибке, если вы введете что-то еще, что не является датой.

7

Вы можете проверить на дату, как это из правил модели

public function rules(){
return [
[['date_var'],'date', 'format'=>'d-m-yy'],
[['from_date', 'to_date'], 'default', 'value' => null],
[['from_date', 'to_date'], 'date'],
];
}
2

Не уверен на 100%, как в Yii2, но выход из Yii1 должен был выглядеть следующим образом …

array('org_datetime', 'date', 'format'=>'yyyy-M-d H:m:s'),

(источник: http://www.yiiframework.com/wiki/56/#hh8)

…Я бы сказал, что должен выглядеть примерно так в Yii2:

['shopping_date', 'date', 'format' => 'yyyy-M-d H:m:s'],
1
По вопросам рекламы [email protected]