すべてのフォームエラーがカスタムフォームフィールドに表示されるわけではありません

geoB

symfonyの4アプリケーションは、タイプと結合InheritanceTypeを用いてユーザエンティティを有しAdminStaffそしてVolunteerStaffエンティティが持つOneToOne関係があるOrganizationエンティティを。したがって、組織フォームタイプにstaffは、カスタムフォームタイプを持つ子が含まれNewUserTypeます。(関連する抜粋を以下に示します。)空のOrganizationTypeフォームが送信されると、名前と電子メールのエラーを除いて、予想されるすべてのフォームエラーが表示されます。ISpasswordフォームエラーフィールドがNewUserTypeレンダリングされます。Symfonyのプロファイラーは名前やEメールのエラーを表示しません。error_bubblingNewUserType違いはありません。組織エンティティ@Assert\Validstaffプロパティに違いはありません。

registerOrganization:

    public function registerOrganiztion(Request $request) {
        $form = $this->createForm(OrganizationType::class);
        $templates = [
            'Registration/organization.html.twig',
            'Registration/new_user.html.twig',
            'Registration/focuses.html.twig',
        ];
    ...
        return $this->render('Default/formTemplates.html.twig', [
                    'form' => $form->createView(),
                    'headerText' => 'Add an organization',
                    'userHeader' => 'Staff Member',
                    'orgHeader' => 'Organization',
                    'focusHeader' => "Organization's Focus",
                    'templates' => $templates,
        ]);
    }

new_user.html.twig:

{% if form.staff is defined %}{% set user = form.staff %}{% else %}{% set user = form %}{% endif %}
<div class="text-center text-bold">
    {{ userHeader }}
</div>
{{ form_row(user.fname) }}
{{ form_row(user.sname) }}
{{ form_row(user.email) }}
{{ form_row(user.plainPassword.first) }}
{{ form_row(user.plainPassword.second) }}

OrganizationType:

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
    ...
                ->add('staff', NewUserType::class)
    }

NewUserType:

class NewUserType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options) {
        $builder
                ->add('sname', null, [
                    'attr' => [
                        'class' => 'mb-2',
                        'size' => '15',
                    ],
                    'label' => 'Last name: ',
                    'label_attr' => ['class' => 'mr-2'],
                ])
                ->add('fname', null, [
                    'attr' => [
                        'class' => 'mb-2',
                        'size' => '15',
                    ],
                    'label' => 'First name: ',
                    'label_attr' => ['class' => 'mr-2'],
                ])
                ->add('email', null, [
                    'attr' => [
                        'class' => 'mb-2',
                        'size' => '15',
                    ],
                    'label' => 'Email: ',
                    'label_attr' => ['class' => 'mr-2'],
                ])
                ->add('plainPassword', RepeatedType::class, array(
                    'type' => PasswordType::class,
                    'mapped' => false,
                    'constraints' => [new NotBlank(['message' => "Password may not empty"])],
                    'invalid_message' => 'Passwords do not match',
                    'first_options' => [
                        'attr' => [
                            'class' => 'mb-2',
                            'size' => '15',
                        ],
                        'label' => 'Password:',
                        'label_attr' => ['class' => 'mr-2'],
                        'required' => true,
                    ],
                    'second_options' => [
                        'attr' => [
                            'class' => 'mb-2',
                            'size' => '15',
                        ],
                        'label' => 'Confirm:',
                        'label_attr' => ['class' => 'mr-2'],
                        'required' => true,
                    ],
                ))
        ;
        if (Volunteer::class === $options['data_class']) {
            $builder
                    ->add('focuses', FocusFieldType::class)
                    ->add('skills', SkillFieldType::class)
            ;
        }
    }

    public function configureOptions(OptionsResolver $resolver) {
        $resolver->setDefaults([
            'data_class' => Staff::class,
            'required' => false,
            'error_bubbling' => true,
        ]);
    }

}

組織エンティティ

/**
 * Organization
 *
 * @ORM\Table(name="organization")
 * @ORM\Entity
 */
class Organization
{
...

    /**
     * @ORM\OneToOne(targetEntity="Staff", inversedBy="organization")
     * @ORM\JoinColumn(name="staff_id", referencedColumnName="id")
     * @Assert\Valid
     */
    protected $staff;
...
}

スタッフエンティティ

/**
 * Staff
 *
 * @ORM\Table(name="staff")
 * @ORM\Entity
 */
class Staff extends User
{
...

    /**
     * @ORM\OneToOne(targetEntity="Organization", mappedBy="staff")
     */
    protected $organization;

    public function getOrganization()
    {
        return $this->organization;
    }

    public function setOrganization(Organization $organization = null)
    {
        $this->organization = $organization;

        return $this;
    }
}
geoB

名前とメールフォームのエラーが表示されない理由はわかりませんが、フォームタイプに制約を追加することで強制できます。次に@Assert\...、Userエンティティのこれらのフィールドからを削除する必要があります。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

すべてのフォーム入力がカードに収まるわけではありません

分類Dev

djangoカスタムユーザーフィールドは管理フォームに表示されません

分類Dev

ExtJS 7.2-チェーンコンボボックスとforceSelection:trueを含むフォームにレコードをロードしても、すべての値がロードされるわけではありません

分類Dev

リクエストがフォームからすべてのデータを返すわけではありません

分類Dev

フォームの検証では、すべてのフィールドに同じエラーメッセージが表示されます

分類Dev

カスタム フォーム バリデーターのフィールドにエラーを表示するにはどうすればよいですか?

分類Dev

PHP配列へのHTMLフォーム入力。すべての値が掲載されているわけではありません

分類Dev

データベースクエリを実行すると、「TypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません」というメッセージが表示されます。

分類Dev

エラーの取得:文字列のフォーマット中にすべての引数が変換されるわけではありません

分類Dev

プログラムエラーTypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

分類Dev

Pythonエラー:文字列のフォーマット中にすべての引数が変換されるわけではありません

分類Dev

PythonエラーTypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

分類Dev

Angularフォームの送信には、変更されたフィールドのみがあり、完全なフォーム値はありません

分類Dev

カスタムstd :: fstream、std :: filebufのオーバーフローおよびアンダーフロー関数がすべての文字に対して呼び出されるわけではありません

分類Dev

Django modelform-フォームにエラーがあると、除外されたフィールドが表示され、翻訳が失われますか?

分類Dev

Scalaエラー:X値はYのメンバーではありません->デフォルトコンストラクターで宣言されているにもかかわらず、プロパティが表示されません

分類Dev

お問い合わせフォーム「エラー:すべてのフィールドが必要です」

分類Dev

Django Rest Frameworkで外部キーのIDの代わりにフィールド値を表示する方法で、DRF HTMLフォームにすべてのフィールドが以前と同じように表示されるようにします

分類Dev

wildfly14で安心:すべてのフィールドが返されるわけではありません

分類Dev

パンダデータフレームからの入力を含むsklearnclassification_reportは、「TypeError:文字列のフォーマット中にすべての引数が変換されたわけではありません」を生成します。

分類Dev

JQuerydatepickerがすべてのフィールドに読み込まれるわけではありません

分類Dev

VS2017-フレームワーク4.6.2は、c#のクラスライブラリプロジェクトのオプションとして表示されていませんが、vbウィンドウフォーム1にあります

分類Dev

テキストフィールドをクリアしても、すべてのデータが消去されるわけではありません

分類Dev

Visual Studio2019-フォルダーに公開してもすべてのファイルが公開されるわけではありません

分類Dev

Djangoモデルフォームのすべてのフィールドには、「有効な選択肢を選択してください。その選択肢は利用可能な選択肢の1つではありません」と表示されます。

分類Dev

Xamarin.FormsDependencyServiceはすべてのプラットフォームに対応しているわけではありません

分類Dev

Xamarin.FormsDependencyServiceはすべてのプラットフォームに対応しているわけではありません

分類Dev

Django-オスカーフォームフォーク-不明なフィールドにエラーがあります(ただし、フィールドはモデルに含まれています)

分類Dev

このSQLINSERT INTOステートメントがエラーをスローするのはなぜですか:TypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

Related 関連記事

  1. 1

    すべてのフォーム入力がカードに収まるわけではありません

  2. 2

    djangoカスタムユーザーフィールドは管理フォームに表示されません

  3. 3

    ExtJS 7.2-チェーンコンボボックスとforceSelection:trueを含むフォームにレコードをロードしても、すべての値がロードされるわけではありません

  4. 4

    リクエストがフォームからすべてのデータを返すわけではありません

  5. 5

    フォームの検証では、すべてのフィールドに同じエラーメッセージが表示されます

  6. 6

    カスタム フォーム バリデーターのフィールドにエラーを表示するにはどうすればよいですか?

  7. 7

    PHP配列へのHTMLフォーム入力。すべての値が掲載されているわけではありません

  8. 8

    データベースクエリを実行すると、「TypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません」というメッセージが表示されます。

  9. 9

    エラーの取得:文字列のフォーマット中にすべての引数が変換されるわけではありません

  10. 10

    プログラムエラーTypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

  11. 11

    Pythonエラー:文字列のフォーマット中にすべての引数が変換されるわけではありません

  12. 12

    PythonエラーTypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

  13. 13

    Angularフォームの送信には、変更されたフィールドのみがあり、完全なフォーム値はありません

  14. 14

    カスタムstd :: fstream、std :: filebufのオーバーフローおよびアンダーフロー関数がすべての文字に対して呼び出されるわけではありません

  15. 15

    Django modelform-フォームにエラーがあると、除外されたフィールドが表示され、翻訳が失われますか?

  16. 16

    Scalaエラー:X値はYのメンバーではありません->デフォルトコンストラクターで宣言されているにもかかわらず、プロパティが表示されません

  17. 17

    お問い合わせフォーム「エラー:すべてのフィールドが必要です」

  18. 18

    Django Rest Frameworkで外部キーのIDの代わりにフィールド値を表示する方法で、DRF HTMLフォームにすべてのフィールドが以前と同じように表示されるようにします

  19. 19

    wildfly14で安心:すべてのフィールドが返されるわけではありません

  20. 20

    パンダデータフレームからの入力を含むsklearnclassification_reportは、「TypeError:文字列のフォーマット中にすべての引数が変換されたわけではありません」を生成します。

  21. 21

    JQuerydatepickerがすべてのフィールドに読み込まれるわけではありません

  22. 22

    VS2017-フレームワーク4.6.2は、c#のクラスライブラリプロジェクトのオプションとして表示されていませんが、vbウィンドウフォーム1にあります

  23. 23

    テキストフィールドをクリアしても、すべてのデータが消去されるわけではありません

  24. 24

    Visual Studio2019-フォルダーに公開してもすべてのファイルが公開されるわけではありません

  25. 25

    Djangoモデルフォームのすべてのフィールドには、「有効な選択肢を選択してください。その選択肢は利用可能な選択肢の1つではありません」と表示されます。

  26. 26

    Xamarin.FormsDependencyServiceはすべてのプラットフォームに対応しているわけではありません

  27. 27

    Xamarin.FormsDependencyServiceはすべてのプラットフォームに対応しているわけではありません

  28. 28

    Django-オスカーフォームフォーク-不明なフィールドにエラーがあります(ただし、フィールドはモデルに含まれています)

  29. 29

    このSQLINSERT INTOステートメントがエラーをスローするのはなぜですか:TypeError:文字列のフォーマット中にすべての引数が変換されるわけではありません

ホットタグ

アーカイブ