我想在已定义的表单中添加小部件(复选框)(使用configure方法)。
我无法在窗体的定义中添加它们,因为窗口小部件的数量会有所不同(根据对象)。
我看到两种方法:
将变量传递给表单的configure方法,或者使用嵌入表单。
但哪一个是正确的方法?还有其他解决方案吗?
谢谢
答案 0 :(得分:1)
正确的方法是将对象直接传递给选项。在表单中,您可以使用$this->getOption
方法检索传递的选项。
答案 1 :(得分:1)
我同意Don Pinkster传递选项并使用它来配置configure()方法中的表单。
但如果需要它或在实例化课程时无法获得价值,您可以在任何地方使用:
$form->getWidgetSchema()->offsetSet($name, $widget);
$form->getValidatorSchema()->offsetSet($name, $validator)
您使用嵌入式表单或窗口小部件的事实不会发生太大变化,因为您可以在最初配置表单后执行此操作:
$form->embedForm($name, $form2);
对于一个复选框,我没有看到使用嵌入式表单的优点。 在这两种情况下,我建议您在表单类的公共方法中执行此操作,以避免在操作类或其他位置爆炸表单配置。
此致