tuchk4
tuchk4

Reputation: 2350

Symfony forms - password type

When I am trying to add password filed in my form 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()
    ));
}

and then render this field in twig template {{ form_row(register.password) }} it appears like text filed. But I need it to be the password type <input type='password'...

Also form type is attached to entity with password attribute:

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

What is the reason?

Upvotes: 2

Views: 6608

Answers (3)

Amin Hoseiny
Amin Hoseiny

Reputation: 80

You should use Type to define field Type in $builder->add('child', 'type', ...)

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

and in Twig

{{ form(form) }}

Upvotes: 2

tuchk4
tuchk4

Reputation: 2350

The reason is that I use form theme:

{% block text_row %}
<div>

    {{ block('form_label') }}

    <div>
        {{ block('form_widget_simple') }}
    </div>

</div>
{% endblock %}

So I add new block:

{% block password_row %}
<div>

    {{ block('form_label') }}

    <div>
        {{ block('password_widget') }}
    </div>

</div>
{% endblock %}

And now all is OK

Upvotes: 3

Vincent Cohen
Vincent Cohen

Reputation: 878

Not sure if this is the correct way, but did you try specifying a type to the field?

$builder->add('password', 'password', array('type'=>'password');

Upvotes: -1

Related Questions