2

当我尝试在我的表单类型类中添加密码时:

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()
    ));
}

然后在树枝模板中呈现这个字段,{{ form_row(register.password) }}它看起来像文本文件。但我需要它是密码类型<input type='password'..

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

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

是什么原因?

4

3 回答 3

2

原因是我使用表单主题:

{% 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 %}

现在一切都好

于 2013-09-05T12:38:49.440 回答
1

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

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

在树枝上

{{ form(form) }}
于 2020-01-16T17:31:46.157 回答
-1

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

$builder->add('password', 'password', array('type'=>'password');
于 2013-09-05T12:22:01.883 回答