我想要一个字段密码而不是“重复”类型的字段。
我用这种方式覆盖了RegistrationFormType。
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
$builder
->remove('username') // email is used as username
->remove('plainPassword') // use only a single field password
->add('firstname')
->add('lastname')
->add('plainPassword', 'password');
}
并在我的树枝模板中以这种方式调用
{{ form_widget(form.plainPassword, {'attr': {'class': 'input', 'placeholder': 'Password', 'required': 'required'}}) }}
只要在表单构建器中添加字段plainPassword,它就会返回:
在第38行的vendor / symfony / symfony / src / Symfony / Component / Validator / Constraints / LengthValidator.php中给出的类型“string”,“array”的预期参数
我做错了什么?我找不到有关覆盖此字段的任何主题。
更新:
dump($builder->all());
返回:
array:4 [▼
"email" => FormBuilder {#1037 ▶}
"firstname" => FormBuilder {#1046 ▶}
"lastname" => FormBuilder {#1196 ▶}
"plainPassword" => FormBuilder {#1184 ▼
-children: []
-unresolvedChildren: []
#locked: false
-dispatcher: EventDispatcher {#1183 ▶}
-name: "plainPassword"
-propertyPath: null
-mapped: true
-byReference: true
-inheritData: false
-compound: false
-type: ResolvedTypeDataCollectorProxy {#1191 ▶}
-viewTransformers: []
-modelTransformers: []
-dataMapper: null
-required: true
-disabled: false
-errorBubbling: false
-emptyData: Closure {#1185 ▶}
-attributes: array:5 [▶]
-data: null
-dataClass: null
-dataLocked: false
-formFactory: FormFactory {#429 ▶}
-action: ""
-method: "POST"
-requestHandler: HttpFoundationRequestHandler {#987 ▶}
-autoInitialize: true
-options: array:49 [▼
"block_name" => null
"disabled" => false
"label" => null
"label_format" => null
"translation_domain" => null
"auto_initialize" => true
"trim" => false
"required" => true
"read_only" => false
"max_length" => null
"pattern" => null
"property_path" => null
"mapped" => true
"by_reference" => true
"virtual" => null
"compound" => false
"method" => "POST"
"action" => ""
"post_max_size_message" => "The uploaded file was too large. Please try to upload a smaller file."
"error_mapping" => []
"cascade_validation" => false
"invalid_message" => "This value is not valid."
"invalid_message_parameters" => []
"allow_extra_fields" => false
"extra_fields_message" => "This form should not contain extra fields."
"csrf_protection" => true
"csrf_field_name" => "_token"
"csrf_message" => "The CSRF token is invalid. Please try to resubmit the form."
"csrf_provider" => CsrfTokenManager {#534 ▶}
"intention" => null
"sonata_admin" => null
"sonata_field_description" => null
"label_render" => true
"sonata_help" => null
"horizontal_label_class" => ""
"horizontal_label_offset_class" => ""
"horizontal_input_wrapper_class" => ""
"description" => ""
"always_empty" => true
"attr" => []
"data_class" => null
"empty_data" => Closure {#1185 ▶}
"error_bubbling" => false
"label_attr" => []
"inherit_data" => false
"validation_groups" => null
"constraints" => []
"csrf_token_manager" => CsrfTokenManager {#534 ▶}
"csrf_token_id" => null
]
}
]
答案 0 :(得分:0)
我将FOS用户捆绑包从1.3.6更新为2.0.0-alpha3(出于不同的原因)。它修正了错误。