Symfony2: почему мое поле времени не проверяется на живом сервере - PullRequest
2 голосов
/ 24 февраля 2012

У меня есть следующее поле формы (определено в formType):

->add('startDate','datetime',array(
                'required' => false,
                'date_widget' => 'single_text',
                'time_widget' => 'single_text',
            ));

Странная вещь: на моем локальном компьютере разработчика все работает так, как ожидалось, когда я вводил некоторое время (например, «09:33»). На живом сервере, однако, форма сообщает мне о сохранении, что значение недопустимо. Может кто-нибудь сказать мне, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 25 февраля 2012

Одной из возможных причин является то, что Intl не настроен с одним и тем же языковым стандартом на вашем живом сервере и компьютере разработчика.

По умолчанию Intl * Formatters будет использовать значение \Locale::getDefault(). Вы должны настроить его поподробнее, используя app / config / config.yml, например:

framework:
    default_locale: en
0 голосов
/ 24 февраля 2012

single_text: визуализирует один ввод текста типа. Пользовательский ввод проверяется на основе формата опция .

Вы не указываете параметр format, который говорит, что по умолчанию он равен IntlDateFormatter::MEDIUM ( пример : Jan 12, 1952).

Параметр передан классу IntlDateFormatter, используемому для преобразования пользовательского ввода в правильный формат. Это критически важно, если для опции виджета задано значение single_text, и оно определяет способ ввода данных пользователем. По умолчанию формат определяется на основе текущей локали пользователя; Вы можете переопределить его, передав формат в виде строки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...