私は解決できなかったTYPO3オブジェクト検証に問題があります。単純化のためにはのは、私が関係して、オブジェクトAとBを持っているとしましょうについて<から1:N - > B.私のExtbaseオブジェクトは作成時にのみ検証されますが、更新時には検証されません
オブジェクトAは、モデルで@validate NotEmptyをマークされているいくつかのプロパティを持っており、これがあれば正常に動作しますフォームを使用してAの新しいインスタンスを作成します(検証エラーが生成され、フィールドにはcssエラークラスが追加されます)。
オブジェクトが既に存在し、標準の編集/更新構造を使用してそれを変更した場合、検証は完全に無視されているように見え、@ invalidate NotEmptyとマークされているプロパティのオブジェクトは空の値で保持できます。
私は、オブジェクトAとBの他の関係(Bはその親にリンクしています)に接続する可能性があるという疑いがあります。検証中にすべての子オブジェクトも検証されますすべてのリレーションプロパティに@ignorevalidationというアノテーションを付けました。
この動作をデバッグするために何かできますか? Extbaseが子オブジェクトや関係プロパティを介して接続されたオブジェクトを検証するのを防ぐ方法はありますか?
答えてくれてありがとうPaul。私は実際にあなたの記事をここに掲載する前に見つけました。そして、私が経験しているものに近いと思われます。あなたのコードスニペットを使ってどのようなバリデータが生成されているかを確認しました。実際には、バリデーターに加えて、すべてのリレーショナルプロパティを明示的に注釈したものがCollectionValidatorまたはConjunctionValidatorでチェックされます。この問題は、すべてのプロパティバリデータを削除することができますか、またはnone ...プロパティバリデータを削除するメソッドがないようです。私はオブジェクトのConjunctionValidatorを完全に削除することしかできませんでした。 – mrwienh
私はまた、フォームの選択に応じて動的検証を使用するための記事でこれを説明しました。私はそれが醜いと思うが、バリデータなしでサブオブジェクトとの関係で新しいモデルを作成し、この "プロキシ"モデルのConjunctionValidatorを取得して、initialize-Acitonsのリクエストにバインドすることができます。参照:http://blog.teamgeist-medien.de/2015/05/typo3-extbase-dynamische-validierung-von-models-je-nach-formularauswahl.html –