0

1つの「単純な」質問:http://mwop.net/blog/2012-07-02-zf2-beta5-forms.html

zendフォームを使用せずにzf2zendフォーム注釈検証ルールを使用することは可能ですか?モデルバリデーター(たとえば、モデルを永続化する前にモデルが正しいかどうかのチェックに使用)とzendフォーム検証の間で検証ルールを共有できますか?

私の「名前」が空でなく、5〜20文字である必要がある場合、それはフォームとモデルで同じルールです。

はっきりと指摘していただければ幸いです

ローマ人

4

1 に答える 1

1

モデルが取得するすべてのデータはユーザー入力またはデータベースからのものであるため、モデル自体もテストする必要はありません。データベース内のデータは正しいはずです!

IE:自分のデータは信頼しますが、ユーザーは信頼しませんか?

しかし、それでもやりたい場合は、AnnotationBuilderを使用してフォームを作成し、フォームからInputFiltersを取得して(おそらく要素ごとにメソッドがあることを確認してください)、モデル内でそれらを使用できると思いますが、私の最初の段落が示唆しているように、私はこれをまったく役に立たない点だと考えています:)

複数の使用可能な入力フィルターに関しては、モデルごとにZend \ InputFilter\InputFilterを拡張する独自のクラスを作成するのが最善です。フォームを作成するときは、を介してそのクラスをフィルター定義としてアタッチ$form->setInputFilter($myModelInputFilterClass)できます。また、モデル内でそのクラスを呼び出して、これらのフィルターを介してデータを実行することもできます。私はこれを手動で行っていませんが、動作するはずです。

必要なステートメントに遭遇した場合、私が推測する唯一の落とし穴が発生する可能性があります。要素ごとに確認すると、それが機能するかどうかもわかりません。InputFilterは、指定されたすべてのフィルターをチェックします。ただし、完全なCSVシートなどをインポートすると、populateFromCsv()とにかくすべてのデータをチェックする関数などがあります。

于 2012-10-26T20:24:38.707 に答える