2013-06-25 4 views
0

Я получаю эту ошибку, но только на одной странице, на другой странице ее работает нормально. Зачем ?Месяц и год Ошибка FormHelper в Cakephp

эхо $ this-> форма-> вход ('Card.month', массив ('тип' => 'Дата', 'автозаполнения' => 'выключено', 'метки' => ложный , 'dateFormat' => 'M', 'empty' => false, 'separator' => ' '));

echo $ this-> Form-> input ('Card.year', array ('type' => 'date', 'autocomplete' => 'off', 'label' => false, 'dateFormat' => 'Y', 'empty' => false, 'separator' => ' ', 'minYear' => date ('Y'), 'maxYear' => date ('Y', strtotime ('+ 20 года))));

enter image description here

+0

Я проверил ваш код и хорошо работает на торте 2.3.6 – kicaj

+0

Вы всегда должны указать точную версию, которую вы используете, чтобы мы могли дать правильный ответ. – mark

+0

@kicaj, мой вопрос первая строка >> Я получаю эту ошибку, но только на одной странице, на другой странице ее работает отлично. Зачем ? –

ответ

2

Был вопрос с тортом и FormHelper ложно нарваться на проверку скалярной, если один из тех, даты, которые я недавно установил: https://github.com/cakephp/cakephp/commit/eb13242680731f8c1cf82786670f5fe40d06f6f3

Если вы проверите текущую 2.3 голову (Master branch!), Вы, вероятно, не увидите это уведомление еще раз. Дайте мне знать, если это не так.

Но вы, вероятно, должны использовать комбинированный вход() здесь с dateFormat => MY в любом случае.

PS: Я тоже только что добавил довольно много коды, как тесты, чтобы опровергнуть, что есть проблемы в текущей основной отрасли: https://github.com/cakephp/cakephp/commit/290c343a745074f1955dd39f7a83638e144df8d8

UPDATE: Я могу воспроизвести вашу ошибку с данными формы вывешенных. Вы, кажется, забыли упомянуть эту важную часть информации

UPDATE2: Фиксированный его в текущем мастере отрасли: https://github.com/cakephp/cakephp/commit/ee5e8c95dd7306665f6a69316618f3a1848ee088

Для объяснения: Вы передаете некоторые значения вниз от контроллера в вашем $this->request->data массиве. Эти массивы - в вашем cae - не содержат конкретных ключей месяца и/или года. Это вызывает ошибку, поскольку не было проверки в помощнике формы, чтобы утверждать, что отказ от этих ключей сработал - что он должен иметь.