Проверка даты в Cake - PullRequest
       29

Проверка даты в Cake

1 голос
/ 20 июля 2010

Как мне заставить работать встроенное форматирование даты в моем приложении Cake? Может быть, я делаю простую ошибку. Сейчас я сосредоточен на модели кода, я думаю, что это то, что я облажался.

На странице это выглядит так, как будто работает, показывая три выбранных виджета с месяцами, днями и годами в указанном порядке. Однако, когда я отправляю форму, я получаю сообщение «Должна быть действительная дата».

Вот код просмотра, который у меня есть:

echo $this->Form->create('Subscription');
echo $this->Form->input('starts',array('type'=>'date','dateFormat'=>'MDY'));
echo $this->Form->end('Submit', true);

И в моей модели проверка выглядит так:

'starts' => array(
    'date' => array(
    'rule' => array('date', array('MDY')),
    'message' => 'Must be a valid date',
    ),
    'notempty' => array(
        'rule' => array('notempty'),
        'message' => 'Start date is required',
    ),
),

Поле, которое я пытаюсь обновить, объявляется как DATETIME в базе данных mysql, в случае, если это имеет значение.

Ответы [ 3 ]

1 голос
/ 12 мая 2014

Я нашел следующую информацию в документации для проверки данных Cake 2.0 (http://book.cakephp.org/2.0/en/models/data-validation.html#Validation::datetime):

Validation::datetime(array $check, mixed $dateFormat = 'ymd', string $regex = null)
This rule ensures that the data is a valid datetime format. A parameter (which can be an array) can be passed to specify the format of the date. The value of the parameter can be one or more of the following:

'dmy' e.g. 27-12-2006 or 27-12-06 (separators can be a space, period, dash, forward slash)
'mdy' e.g. 12-27-2006 or 12-27-06 (separators can be a space, period, dash, forward slash)
'ymd' e.g. 2006-12-27 or 06-12-27 (separators can be a space, period, dash, forward slash)
'dMy' e.g. 27 December 2006 or 27 Dec 2006
'Mdy' e.g. December 27, 2006 or Dec 27, 2006 (comma is optional)
'My'  e.g. (December 2006 or Dec 2006)
'my'  e.g. 12/2006 or 12/06 (separators can be a space, period, dash, forward slash)
 if no keys are supplied, the default key that will be used is 'ymd':
1 голос
/ 21 июля 2010

Не помню, как мне хотелось бы, но я думаю, что вы должны использовать сгенерированные входные данные даты, чтобы построить свою собственную дату.

!! - Очистить это - !!

‘Mdy’ e.g. December 27, 2006 or Dec 27, 2006 (comma is optional)

Если ключи не предоставлены, будет использоваться ключ по умолчанию 'ymd'.

Я с SpawnCxy на этом.

0 голосов
/ 21 июля 2010

Я не нахожу параметр MDY в списке параметров . Вы можете попробовать Mdy.

...