Symfony表单-密码类型


Symfony forms - password type

当我试图添加表单类型class中的密码文件时:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('name', 'text');
    $builder->add('email', 'email');
    $builder->add('password', 'password');
    $builder->add('terms', 'checkbox', array(
        'mapped' => false,
        'constraints' => new NotBlank()
    ));
}

然后在分支模板CCD_ 1中呈现该字段,它看起来像文本字段。但我需要它是密码类型<input type='password'..

此外,表单类型附加到具有密码属性的实体:

/**
 * @var string
 *
 * @ORM'Column(name="password", type="string", length=32, nullable=false)
 */
private $password;

原因是什么?

原因是我使用表单主题:

{% block text_row %}
<div>
    {{ block('form_label') }}
    <div>
        {{ block('form_widget_simple') }}
    </div>
</div>
{% endblock %}

所以我添加了新的区块:

{% block password_row %}
<div>
    {{ block('form_label') }}
    <div>
        {{ block('password_widget') }}
    </div>
</div>
{% endblock %}

现在一切正常

您应该使用Type来定义$builder->add('child', 'type', ...) 中的字段Type

$builder->add('username', TextType::class, array('label' => 'Username'))
        ->add('password', PasswordType::class, array('label' => 'Password'))

和Twig

{{ form(form) }}

不确定这是否是正确的方法,但您是否尝试为字段指定类型?

$builder->add("密码"、"密码",数组("类型"=>"密码");