Php 在Symfony2 form builder上设置根元素的属性
大家好,我使用的是symfony2 form builder,我想在表单元素上添加属性所需的效果如下:Php 在Symfony2 form builder上设置根元素的属性,php,symfony,formbuilder,Php,Symfony,Formbuilder,大家好,我使用的是symfony2 form builder,我想在表单元素上添加属性所需的效果如下: <form data-login="<?php echo $view['router']->generate('login_check'); ?>" data-register="<?php echo $view['router']->generate('register'); ?>" actio
<form
data-login="<?php echo $view['router']->generate('login_check'); ?>"
data-register="<?php echo $view['router']->generate('register'); ?>"
action="<?php echo $view['router']->generate('login_check'); ?>"
method="post"
id="ajaxLoginForm"
name="login_form">
不幸的是,在FormBuilder上执行与自定义表单字段相同的操作是不可能的。要对根表单元素执行此操作,在表单类的setDefaultOptions
(扩展AbstractType
)上,您应该返回attr
键,相应的值是属性名=>值的关联数组:
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'attr' => array('id' => 'ajaxLoginForm'),
...
));
}
对于表单name
属性,只需实现(在同一个类上)
正确实现上述方法后,属性应正确呈现,而无需对模板或表单主题执行任何修改
注意:您可能必须在表单中插入路由器组件(或在实例化时将其作为选项传递),以便为您的数据登录
和数据注册
属性创建所需的路由。属性使用
<?php echo $view['form']->form($form, array(
'attr' => array(
'data-login' => $view['router']->generate('login_check'),
'data-register' => $view['router']->generate('register'),
// etc...
),
)) ?>
<?php echo $view['form']->form($form, array(
'attr' => array(
'data-login' => $view['router']->generate('login_check'),
'data-register' => $view['router']->generate('register'),
// etc...
),
)) ?>
// In form class
$builder->setAction('/login_check');
$builder->setMethod('post');