代码之家  ›  专栏  ›  技术社区  ›  Aamir

Symfony Add bootstrap表单控件类

  •  3
  • Aamir  · 技术社区  · 7 年前

    $builder 
    ->add('name', TextType::class,array(
        'attr' => array(
            'class' => 'form-control'
        )
    ))  
    -> add('plainPassword', RepeatedType::class, array(
        'type' => PasswordType::class,
        'first_options'  => array('label' => 'Password'),
        'second_options' => array('label' => 'Repeat Password'),
        'attr' => array('class' => 'form-control')
    ));
    

    非常感谢您的帮助。 谢谢

    2 回复  |  直到 7 年前
        1
  •  3
  •   Jason Roman    7 年前

    有两种方法可以做到这一点。第一个是使用 options

    ->add('plainPassword', RepeatedType::class, array(
        'type' => PasswordType::class,
        'first_options'  => array('label' => 'Password'),
        'second_options' => array('label' => 'Repeat Password'),
        'options' => array('attr' => array('class' => 'form-control'))
    ));
    

    您还可以在 first_options second_options 字段,就像这样。如果您有特定于每个字段的选项,或者希望覆盖主选项中的某些内容,那么这将非常有用。

    ->add('plainPassword', RepeatedType::class, array(
        'type' => PasswordType::class,
        'first_options'  => array(
            'label' => 'Password',
            'attr' => array('class' => 'form-control')
        ),
        'second_options'  => array(
            'label' => 'Password',
            'attr' => array('class' => 'form-control-override')
        ),
        'attr' => array('class' => 'form-control')
    ));
    

    而且 as of Symfony 2.6 built-in Bootstrap form theme support 您不必手动将这些类添加到所有字段中。

        2
  •  2
  •   Dan Costinel    7 年前

    Symfony开发团队的一些人建议您直接在html中使用boostrap的类( here Type 类,并在渲染表单时添加以下内容:

    {{ form_row(name, { attr: { 'class': 'form-control' } ) }}
    {{ form_row(password, { attr: { 'class': 'form-control' } ) }}
    {{ form_row(plainPassword, { attr: { 'class': 'form-control' } ) }}