我已经查看了文档,除非我错过了它,否则我无法找到任何解释 Symfony2 中 buildForm->add() 函数的官方 $options 的内容。
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('fieldname1');
$builder->add('fieldname2', new formObjectType(), $arrayOptions);
}
采用上面的代码,哪些选项将作为第二个字段的数组传入。
谢谢
最佳答案
这些选项被传递给字段类型,在您的例子中是 formObjectType
。因此,这实际上取决于该字段接受的选项。例如,假设您想传递一个选项来告诉 formObjectType
显示或不显示给定的字段。你可以这样做:
// Application/AcmeBundle/Form/Type/FormObjectType.php
class FormObjectType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$this->add('name', 'text');
if ($options['display_custom_field'] === true) {
$this->add('name_custom', 'text');
}
}
public function getDefaultOptions(array $options)
{
return array(
'display_custom_field' => false,
);
}
}
// Application/AcmeBundle/Controller/FormController.php
class FormController extends Controller
{
public function createForm($object)
{
return $this->getFormFactory()->create(new FormObjectType(), $object, array(
'display_custom_field' => true,
));
}
public function customAction()
{
$form = $this->createForm();
// Code here ...
}
}
如果选项是在数组中传递或根本不传递数组,则在 formObjectType
中设置默认值。因此,此数组用于自定义给定类型所期望的选项。这也适用于 text
、date
等内置类型。
希望对您有所帮助。
问候,
马特
附言您的类名应该以大写字母开头:FormObjectType
而不是 formObjectType
以区分变量和方法与类名。这只是一个建议:)
关于php - 在 Symfony2 中使用 buildForm->add() 函数时,可接受的选项有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7504792/