Symfony получает отправленные значения в классе Form - PullRequest
2 голосов
/ 24 августа 2011

Мне нужно использовать переданное значение для sfValidatorDoctrineChoice в форме, сгенерированной после модели.

Я пытался $this->getValue('country'), но она не работает:

$query2 = Doctrine_Core::getTable('sate')->createQuery('s')
            ->select('s.id')
            ->where('s.idcountry = ?', $this->getValue('country'));

Как я могу получить этопараметр

Ответы [ 3 ]

5 голосов
/ 24 августа 2011

Если вы находитесь в * форме, попробуйте это:

$query2 = Doctrine_Core::getTable('sate')->createQuery('s')
            ->select('s.id')
            ->where('s.idcountry = ?', $this->getObject()->getCountry());

В противном случае, если вы находитесь в классе действий, вам нужно использовать $this->form->getObject()->getCountry().

0 голосов
/ 08 сентября 2011

Помните, что sfContext не бесплатен:)

Тестирование кода, основанного на контексте, действительно сложно, так как вам нужно загрузить весь контекст Symfony, таким образом потеряв изоляцию теста.

Кроме того, имейте в виду, что у вас есть доступ ко всему объекту Request в форме, неприятный запах.

Вместо этого попробуйте следовать подсказкам Фабио Синеркии.

0 голосов
/ 24 августа 2011
$somevar = sfContext::getInstance()->getRequest()->getParameter('register')
$query2 = Doctrine_Core::getTable('sate')->createQuery('s')
        ->select('s.id')
        ->where('s.idcountry = ?', $somevar['country']);

Этот работает.

...