0

通常のシナリオでは、ユーザーはフォーム フィールドに詳細を入力し、データを送信します。提出時にモデルがデータを検証し、検証が失敗した場合、ユーザーはエラー通知とともに同じページにリダイレクトされます。

検証が失敗した場合、ユーザーを指定されたページにリダイレクトする必要がある特定のシナリオがあります。ユーザーがデータを投稿した場所から同じページにリダイレクトされることを望んでいません。

ケーキのドキュメントを調べました。しかし、データ検証の失敗時のリダイレクトについて言及しているものは見つかりませんでした。コントローラーからの検証を使用している場合に達成できます。しかし、ここではモデル内のルールのみを使用して検証しています。

それは可能でしょうか?

4

1 に答える 1

1

デフォルトでは、データ検証が失敗した場合、ユーザーはどこにも「リダイレクト」されません。Cake は、リダイレクトなしで同じビューを表示します。検証エラーが存在する場合、ビューには常に検証エラーが表示されます。もちろん、フォームを初めてロードするときはエラーはありませんが、間違ったデータを送信した後はエラーが発生します。ただし、どちらの場合もまったく同じビューであり、リダイレクトは使用されません。

問題を解決するには、次の例を変更してください: http://book.cakephp.org/2.0/en/models/ Saving- your-data.html

// If the form data can be validated and saved...
if ($this->Recipe->save($this->request->data)) {
    $this->Session->setFlash("Recipe Saved!");
    $this->redirect('/success-page');
} else {
    $this->Session->setFlash("We Have Errors!");
    $this->redirect('/my-custom-error-page'); // REDIRECT TO YOUR PAGE HERE
}

あなたにとってうまくいかない理由はありますか?

于 2012-08-13T23:05:39.930 に答える