Bon*_*uar 10 forms choicefield symfony
1)有symfony方法吗?
我有一个基本表单(没有映射到数据库),有一些选择字段,例如:
$builder->add('civility', 'choice', array('choices'=> array('m' => 'M.', 'mme' => 'Mme', 'mlle' => 'Mlle')))
Run Code Online (Sandbox Code Playgroud)
我怎样才能 - 在表单被提交之后 - 在动作中(或者更好的是,在模板中),检索选项的标签值而不是表单提交的值?(在这种情况下,我希望能够在模板中而不是"m"渲染"M.")
我在考虑类似的事情 $form->get("civility")->getChoiceLabel($form->get("civility")->getData())
但是我没有在文档中找到这样的东西(尽管在Symfony1中有类似的东西).
2)如果真的没有,最好的方法是什么?
因此,我正在考虑创建一些方法来实现,在表单使用的数据类中,如:..
private $choices = array("civility" => array('m' => 'M.', 'mme' => 'Mme', 'mlle' => 'Mlle'));
static public function getChoiceLabel($choice_value, $field_name)
{
return self::$choices[$field_name][$choice_value];
}
static public function getChoices($field_name)
{
return self::$choices[$field_name];
}
Run Code Online (Sandbox Code Playgroud)
但问题是我们不应该在twig模板中使用静态方法(我必须使它能够在表单生成,buildForm方法中使用静态,而不是复制一些代码).
Has*_*ast 14
您可以访问选择标签及其值,如下所示:
$form->get('civility')->getConfig()->getOption('choices');
Run Code Online (Sandbox Code Playgroud)
阅读更多:Symfony\Component\Form\FormConfigInterface :: getOption()
| 归档时间: |
|
| 查看次数: |
8512 次 |
| 最近记录: |