Symfony在Form类中获取提交的值

时间:2011-08-24 15:26:07

标签: php symfony1 symfony-1.4

我需要在模型后面生成的表单中使用sfValidatorDoctrineChoice的提交值。

我尝试了$this->getValue('country'),但它无效:

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

我如何获得该参数?

3 个答案:

答案 0 :(得分:5)

如果您正在使用*表格,请尝试:

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

否则,如果您进入动作类,则需要使用$this->form->getObject()->getCountry()

答案 1 :(得分:0)

$somevar = sfContext::getInstance()->getRequest()->getParameter('register')
$query2 = Doctrine_Core::getTable('sate')->createQuery('s')
        ->select('s.id')
        ->where('s.idcountry = ?', $somevar['country']);

这个有效。

答案 2 :(得分:0)

请记住,sfContext不是免费的:)

测试一堆依赖于上下文的代码真的很难,因为你需要引导整个symfony上下文,从而失去测试的隔离。

另外,请记住,您正在访问Form中的整个Request对象,这是一种难闻的气味。

请尝试遵循Fabio Cinerchia的提示。