0

フォームを使用してtypo3に流動的なテンプレートを作成しましたが、検証は注釈付きの拡張モデルにあります。

@validate StringLength(minimum=3, maximum=50)

フォームがエラーを生成した場合、extbase はフォームにエラーを表示します。それは正しい。私のフォームの入力は、返品後に空になるためです。オブジェクトをデバッグすると、これも空になります。

これは私のコントローラの私の機能です:

public function standardAction() {
}

standard.htmlそして、これは私のテンプレートの私のフォームです:

action="standardcreate" name="newStandard" object="{newStandard}" 
  method="post" enctype="multipart/form-data">

{newStandard}も空ですか?なんで?

フォームの値を返します。

4

1 に答える 1

1

ねえ、まず第一に、どのようにデータを取得してモデルを検証するのですか?

これを処理する最善の方法は、2 つのアクションを使用することです。両方とも $myModel オブジェクトを引数として持ちます。最初のアクションはフォームを表示し、アクションに @dontvalidate 注釈を付けます。2 つ目は、検証が成功した場合にデータを保存するためのものです。フォームには、ターゲットとして 2 番目のアクションが必要です。

この場合、Extbase は次のことを行います: formdata は 2 番目のアクションに移動し、検証を試みます。間違ったデータを提供したために検証は失敗しますが、extbase はフォームを内部的に表示するアクションも送信し、そのアクションに戻ります。この最初のアクションには @donotvalidate アノテーションがあるため、「間違った」値を持つモデルを受け入れるため、テンプレートに戻すことができます。

于 2011-05-14T09:30:23.610 に答える