【问题标题】:Symfony Forms: options not workingSymfony Forms:选项不起作用
【发布时间】:2018-07-21 06:01:41
【问题描述】:

我有一个 symfony 3.4 表单类 UserForm,我在 setDefaultOptions 方法中设置了选项 'password_field' => false

public function setDefaultOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => User::class,
        'password_field' => false,
    ));
}

在我使用此表单的控制器中,我设置了选项:

    $form = $this->createForm(UserForm::class, $user, [
        'password_field' => false,
    ]);

通过在浏览器中加载表单,我收到以下错误消息:

The option "password_field" does not exist. Defined options are: "action", "allow_extra_fields", "attr", "auto_initialize", "block_name", "by_reference", "compound", "constraints", "csrf_field_name", "csrf_message", "csrf_protection", "csrf_token_id", "csrf_token_manager", "data", "data_class", "disabled", "empty_data", "error_bubbling", "error_mapping", "extra_fields_message", "inherit_data", "invalid_message", "invalid_message_parameters", "label", "label_attr", "label_format", "mapped", "method", "post_max_size_message", "property_path", "required", "translation_domain", "trim", "upload_max_size_message", "validation_groups".

一切对我来说都是正确的,如文档中所述。有什么想法吗?

【问题讨论】:

    标签: symfony symfony-forms symfony-3.4


    【解决方案1】:

    setDefaultOptions() 已被弃用,取而代之的是 configureOptions()。 Symfony 2.x 中使用了这个方法名

    UPGRADE-3.0.md

    configureOptions() 已在 Symfony 3.x 中使用

    所以你必须替换方法名;)

    例子:

    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => User::class,
            'password_field' => false
        ]);
    }
    

    【讨论】:

    • 好的,就是这样。谢谢!
    • 这对我也有帮助!当不小心在网上跟踪过时的例子时,很容易错过这样的东西......
    猜你喜欢
    • 1970-01-01
    • 2020-01-18
    • 2021-03-15
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2019-03-10
    相关资源
    最近更新 更多