Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Symfony2 form builder上设置根元素的属性_Php_Symfony_Formbuilder - Fatal编程技术网

Php 在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

大家好,我使用的是symfony2 form builder,我想在表单元素上添加属性所需的效果如下:

<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');