Symfony 2禁用选项

时间:2016-01-25 12:37:52

标签: php forms symfony

好的,我遇到了Twig试图在“下拉”选择列表中添加禁用选项的问题。我有一个To&来自,本周的所有日子。

但是我已经构建了一个解决方法,我将数据提供给Type并设置一个小函数来查看表单元素是否被禁用并根据它进行设置。

那么我在控制器中的位置

 $SetData = $this->getDoctrine()
                   ->getRepository('Bundle:XXXXXInfo')
                   ->findOneById($ID);

 $Form = $this->createForm(new InfoType($SetData), $SetData, ['action' => $this->generateUrl('formPath')])
                    ->add('save', 'submit', ['label' => $ButtonLabel,
                                             'attr' => ['class' => 'btn btn-primary'],
                                            ]);

这是我的InfoType表单的外观,

 public function __construct($Data) {
    $this->MyInfo = $Data; 
}

private function SetDisabledOption($From, $To) {

    if ($From === NULL && $To === NULL ) {
        $DisabledOption = true;
    } else {
        $DisabledOption = false;
    }

    return $DisabledOption; 
}

然后在该类型的'buildForm'函数中,

 $CurrentData = $this->MyInfo;

 $Monday = $this->SetDisabledOption($CurrentData->getMonFrom(), $CurrentData->getMonTo());

这是我发现的唯一一项工作,因为我尝试了各种代码用于'attr'而没有在我希望禁用的表单小部件上。我无法做到这一点。然后,查看我想要它做什么,我认为如果我将所有逻辑(if语句)保留到Controller / Form Builder中,将会产生更干净的代码。

但是,当这些选项现在设置为NULL并且disabled选项为true时,使用一点Jquery和一个复选框删除它,它不会删除它并且值仍然设置为null?

现在我尝试在我的表单上使用 getData() ,仍然为null - 但是当我检查所有PHP $_POST 数据时,如果已从中删除了禁用值,则可以使用这些值。

那么我做错了什么?

谢谢,

0 个答案:

没有答案