2012-02-24 5 views
2

Я следующего поля формы (определенный в formType):Symfony2: почему мое время поле не проверять на реальном сервере

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

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

+0

Вы очистили кеш? Странно, что вы не получаете такую ​​же ошибку в среде разработчиков. – Nanocom

ответ

1

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

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

framework: 
    default_locale: en 
+0

Я включил default_locale во время тестирования и забыл вернуться обратно. Поскольку локаль устанавливается при входе в систему, очистка кеша на сервере не помогла. Выход и логин сделали! – stoefln

0

single_text: делает один ввод текста типа. Вход пользователя проверяется на основе формата option.

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

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

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

Смежные вопросы