【问题标题】:FormType : required attribute doesn't work with Entity TypeFormType:必需属性不适用于实体类型
【发布时间】:2018-10-07 07:46:21
【问题描述】:

我正在使用 Symfony 3.4,当尝试将所需的 HTML5 属性添加到我的“fournisseur”字段时,我没有在 HTML 中得到它。

ArrivageType.php:

$builder
->add('fournisseur', EntityType::class, array(
    'class' => 'AppBundle:Fournisseur',
    'choice_label' => 'name',
    //'empty_data'  => null,
    'required' => true,
))

【问题讨论】:

  • 默认情况下 required 是 true。请显示所有对应的代码。
  • 您的问题解决了吗?

标签: symfony validation symfony-3.4


【解决方案1】:

您没有设置multipleexpanded,这些选项默认为false,这意味着您正在尝试渲染select 元素。

默认情况下,当 required 选项设置为 true 时,Symfony 不会将 required 属性添加到 select 元素,而是不会在 select 元素中呈现空的 option

如果您想在您的select 元素中添加一个空的optionrequired 属性,您应该在您的表单中添加一个placeholder 选项:

$builder
    ->add('fournisseur', EntityType::class, array(
        'class' => 'AppBundle:Fournisseur',
        'choice_label' => 'name',
        //'empty_data'  => null,
       'required' => true,  // not needed since it is true by default,
       'placeholder' => 'Choose a fournisseur'
    ))

这将呈现一个空的option,在您的select 元素中带有“Choose afournisseur”文本,以及此selectrequired 属性。

【讨论】:

  • 几年后,但我有这个设置,但它对我不起作用。不是废话答案,而是报告我的结果。
【解决方案2】:
$builder
->add('fournisseur', EntityType::class, array(
    'class' => 'AppBundle:Fournisseur',
    'choice_label' => 'name',
    //'empty_data'  => null,
    'attr'=>[
          'required'=>'required'
            ],
))        

【讨论】:

  • 这在我的情况下有效,但@iiirxs 的答案没有。这也适用于“占位符”选项,这意味着您可以执行他的回答中所述的操作。
【解决方案3】:

在这种情况下,我会做以下事情:

$builder
->add('fournisseur', EntityType::class, array(
    'class' => 'AppBundle:Fournisseur',
    'choice_label' => 'name',
    //'empty_data'  => null,
    'required' => true,
    'constraints' => array(new NotBlank()),
))

或者,如果类型 (ArrivageType) 有一个“date_class”(比如说 Entity/Arrivage.php),那么您可以在文件中为它指定验证:validation.yml

AppBundle\Entity\Arrivage:
    properties:
      fournisseur:
         - NotBlank: ~

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    相关资源
    最近更新 更多