Symfony2 LexikFormFilterBundle:filter_entityの値が空の場合、フォームエラーが発生します

spackmat

私はSymfony2.7.0- BETA1でLexikFormFilterBundle(現在開発バージョン)を使用しています。期待どおりに動作しますが…

問題

filter_entity空のオプションが送信されると(つまり、エンティティが選択されていない場合)、すべてのフィールドでフォームエラーがスローされます。基本的な例文書化されており、設定する必要があります

'validation_groups' => array( 'filtering')// NotBlank()制約関連のメッセージを回避する

しかし、私の場合、ManyToOneエンティティはNotBlank()-Assertを使用しませんそれにもかかわらず、フォームは存在しないエンティティに関するエラーをスローし''ます。エンティティを選択すると、フィルターが正しくフィルターされ、エラーメッセージが表示されません。他のフィルターフィールドタイプも、空の場合でもエラーをスローしません。

これが私のコードの簡略化された表現です:

エンティティコード:

<?php
// src/AppBundle/Entity/Serviceevent.php
namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Serviceevent
 *
 * @ORM\Table(name="serviceevents")
 * @ORM\Entity(repositoryClass="AppBundle\Entity\ServiceeventRepository")
 */
class Serviceevent
{
    /**
     * @var \AppBundle\Entity\Park
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Park", inversedBy="serviceevents")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="park_id", referencedColumnName="id", nullable=false)
     * })
     */
    private $park;
}

フォームフィルターコード:

<?php
// /src/AppBundle/Filter/ServiceeventFilterType.php
namespace AppBundle\Filter;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class ServiceeventFilterType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('park', 'filter_entity', array(
                'class' => 'AppBundle:Park',
                'property' => 'identifyingName',
                'label' => 'Park',
                'placeholder' => '',
                'required' => false,
            ));
        ;
    }

    public function getName()
    {
        return 'serviceevent_filter';
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'csrf_protection'   => false,
            'validation_groups' => array('filtering'), // avoid NotBlank() constraint-related message
        ));
    }
}

私が期待すること

値が選択されていない場合、エラーがスローされることなく、そのフィールドのフィルタリングが行われなかったと思います。

私が得るもの

代わりに、次のようなすべてのエンティティフィールドでフォームエラーが発生します。

Symfony \ Component \ Validator \ ConstraintViolation Object(Symfony \ Component \ Form \ Form).children [park] =

のせいで:

Symfony \ Component \ Form \ Exception \ TransformationFailedExceptionプロパティパス "[park]"の値を元に戻すことができません:選択肢 ""が存在しないか、一意ではありません

のせいで:

Symfony \ Component \ Form \ Exception \ TransformationFailedException選択肢 ""が存在しないか、一意ではありません

質問は

問題は、これらのエラーをどのように取り除くのかということです。

spackmat

https://github.com/symfony/symfony/issues/14393#issuecomment-94996862のユーザーwcluijtの修正により、これが修正されました。これは、ここでの私の問題がSymfony2.7.0-BETA1のバグによって引き起こされたことを確認します。したがって、この質問は修正済みとして閉じることができます。ベータ関連のバグで時間を無駄にしてすみません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

symfony2フォームの検証

分類Dev

Symfony2: Creating entity table conditionally

分類Dev

Symfony2 Entity with criteria and params

分類Dev

Symfony2 method with query in entity

分類Dev

Symfony2サービス

分類Dev

Symfony2ロガー

分類Dev

Symfony2でのOrderBy

分類Dev

formbuillderのsymfony2認証

分類Dev

Symfony2での設定

分類Dev

Symfony2での設定

分類Dev

Symfony2の継承

分類Dev

symfony2のOneLogin / phpsaml

分類Dev

Symfony2:値が空のエンティティフォームフィールド

分類Dev

SQLクエリSymfony2の実行中にエラーが発生しました

分類Dev

Symfony2フォーム処理

分類Dev

Symfony2日時フォーム

分類Dev

Symfony2:ブール値がfalseの場合($ boolean == null)がtrueの場合

分類Dev

クラスなしのSymfony2フォームビルダーは、複数のフィールドが空かどうかをチェックします

分類Dev

FOSElasticaBundle / Symfony2の入力中にResponseExeptionでエラーが発生しました

分類Dev

symfony2の教義が左結合

分類Dev

特定のCSSクラスをSymfony2フォームに追加します

分類Dev

特定のCSSクラスをSymfony2フォームに追加します

分類Dev

ショッピングカートが空の場合のSymfony2エラー

分類Dev

Symfony2のデータベースから列の合計を取得しようとしたときにエラーが発生しました

分類Dev

未設定のフォームファイル値Symfony2

分類Dev

列の合計-Doctrine2 / Symfony2

分類Dev

symfony2のMySQL(PDO)でエラーが発生しました:ドライバーで例外が発生しました:SQLSTATE [HY000] [1049]

分類Dev

検証エラーが発生したときにSymfony2フォームフィールドが更新されない

分類Dev

Symfony2のベンダーフォルダーにバンドルを追加する際にエラーが発生する

Related 関連記事

  1. 1

    symfony2フォームの検証

  2. 2

    Symfony2: Creating entity table conditionally

  3. 3

    Symfony2 Entity with criteria and params

  4. 4

    Symfony2 method with query in entity

  5. 5

    Symfony2サービス

  6. 6

    Symfony2ロガー

  7. 7

    Symfony2でのOrderBy

  8. 8

    formbuillderのsymfony2認証

  9. 9

    Symfony2での設定

  10. 10

    Symfony2での設定

  11. 11

    Symfony2の継承

  12. 12

    symfony2のOneLogin / phpsaml

  13. 13

    Symfony2:値が空のエンティティフォームフィールド

  14. 14

    SQLクエリSymfony2の実行中にエラーが発生しました

  15. 15

    Symfony2フォーム処理

  16. 16

    Symfony2日時フォーム

  17. 17

    Symfony2:ブール値がfalseの場合($ boolean == null)がtrueの場合

  18. 18

    クラスなしのSymfony2フォームビルダーは、複数のフィールドが空かどうかをチェックします

  19. 19

    FOSElasticaBundle / Symfony2の入力中にResponseExeptionでエラーが発生しました

  20. 20

    symfony2の教義が左結合

  21. 21

    特定のCSSクラスをSymfony2フォームに追加します

  22. 22

    特定のCSSクラスをSymfony2フォームに追加します

  23. 23

    ショッピングカートが空の場合のSymfony2エラー

  24. 24

    Symfony2のデータベースから列の合計を取得しようとしたときにエラーが発生しました

  25. 25

    未設定のフォームファイル値Symfony2

  26. 26

    列の合計-Doctrine2 / Symfony2

  27. 27

    symfony2のMySQL(PDO)でエラーが発生しました:ドライバーで例外が発生しました:SQLSTATE [HY000] [1049]

  28. 28

    検証エラーが発生したときにSymfony2フォームフィールドが更新されない

  29. 29

    Symfony2のベンダーフォルダーにバンドルを追加する際にエラーが発生する

ホットタグ

アーカイブ