Ошибка sfValidatorI18nChoiceLanguage does not support the following options: 'culture'.

Приветствуем!

Хотите что-то написать?

Нужно назвать себя.

Если вы пришли в первый раз,
то нужно зарегистрироваться.

Читайте нас в:

Блог на ya.ru
Блог на Деловом квартале
Блог на Twitter.om
Блог на Livejournal.com
22 января

ПроблеммыОшибка sfValidatorI18nChoiceLanguage does not support the following options: 'culture'.

Здравствуйте, слышал тут просто професионалы в symfony сидят уже который год с ней работающие, хотел попросить у вас помощи, если конечно можно *смущение*

Возникла такая очень неприятная проблемма; решил освоить symfony, начал с проекта jobeet и все вроде было хорошо….. но вот дошел до локализации и вылезла вот такая ошибка:

sfValidatorI18nChoiceLanguage does not support the following options: ‘culture’.

stack trace

•  at ()

in SF_ROOT_DIR\lib\vendor\symfony\lib\validator\sfValidatorBase.class.php line 67 …

64.     // check option names

65.     if ($diff = array_diff($optionKeys, array_merge($currentOptionKeys, $this->requiredOptions)))

66.     {

67.      throw new InvalidArgumentException(sprintf(‘%s does not support the following options: \’%s\‘.’, get_class($this), implode(‘\’, \‘’, $diff)));

68.     }

69.  

70.     // check error code names

…………

остальное не привожу, там слишком много всего написано еще….

Чтоб некоторые так скажем версии отмести: до этого все уроки работали… может не сразу но работали, проект делаю сначала по русской версии, потом проверяюсь по английской на всякий случай, так вот 19 урок, до заголовка «Переключение языков» все работало, потом сделал как написано

$ php symfony plugin:install sfFormExtraPlugin

командная строка вернула success

вставил   <?php include_component(‘language’, ‘language’) ?>

проверил — говорит нет language…….. ну не суть, добавил модуль, заполнил components.class.php и опа эта ошибка вылезла….. кажется проблема именно в ней, так как ну не работает и не работает, доделал урок до конца…… и все равно дальше этой ошибки не ушел.

Если убрать   <?php include_component(‘language’, ‘language’) ?> — снова все работает.

Не знаю что делать теперь, как вариант то что в доке в пером уроке написано что предполагается что версия 1.3 или 1.4 а у меня 1.4.1 или как еще один вариант то что версия sfFormExtraPlugin обновилась и не подходит более к symfony 1.4.1 но эт все мои нубовские версии, надеюсь профессионалы которые здесь собрались все же помогут разобраться что на самом деле случилось

Заранее спасибо

Jobeet вы наверное даже и не смотрели….. это для начинающих на сколько я понял, но хоть воообще что это за ошибка то такая на сайте симфонии ничего вразумительного не нашел, в какую сторону копать тоже непонятно

 

Коментарии:

Putnik 2010-04-02 15:01:37

Абсолютно такая же проблема не подскажите как решить
Единственное от себя добавлю у меня стоит PHP 5.3.2 symfony 1.4.4 DEV
Заранее всем благодарен.

ответить
Putnik 2010-04-02 15:51:00

Интересное наблюдение когда делаю как в книге написано что так делать нельзя тоесть вставляю в layaut

ответить
putnik 2010-04-02 16:25:36

В общем я разобрался оказывается вот здесь http://trac.symfony-project.org/ticket/7797
на чистом английском языке всё популярно расписано.
Я сам английский не знаю но приведу перевод с помощью http://translate.google.com
***
поскольку culture вариант в настоящее время устаревшим sfValidatorI18nChoiceLanguage валидатор, культуры аргумент должен быть удален из sfValidatorI18nChoiceLanguage валидатор в sfFormLanguage формы.

Если этого не сделать бросает следующими исключениями: sfValidatorI18nChoiceLanguage не поддерживает следующие функции: «культура».
***
то есть почти сразу становится понятно, что что-то надо удалить
вот тут показано что:
http://trac.symfony-project.org/attachment/ticket/7797/languageForm.patch

попросту надо найти файл [ваш проект]/plugins/sfFormExtraPlugin/lib/form/sfFormLanguage.class.php

затем в нём найти строку
‘language’ => new sfValidatorI18nChoiceLanguage(array(‘culture’ => $this->user->getCulture(), ‘languages’ => $this->options[‘languages’])),

у меня это 104 строка и удалить из неё ‘culture’ => $this->user->getCulture(),

получится в результате
‘language’ => new sfValidatorI18nChoiceLanguage(array(‘languages’ => $this->options[‘languages’])),

и всё заработает.

ответить
fredrickson international 2012-01-09 10:15:01

It is excellent to have the opportunity to read a superb top quality write-up with useful facts on subjects that a lot are interested on. The points that the data stated are all initially hand on actual experiences even assist extra. Go on performing what you do as we get pleasure from reading your work.

ответить

Свой комментарий: