我需要在模型后面生成的表单中使用sfValidatorDoctrineChoice的提交值。
我尝试了$this->getValue('country')
,但它无效:
$query2 = Doctrine_Core::getTable('sate')->createQuery('s')
->select('s.id')
->where('s.idcountry = ?', $this->getValue('country'));
我如何获得该参数?
答案 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的提示。