1

コントローラでリダイレクトした後に#errorMessagesFor()#メソッドを使用する方法はありますか?

私が尋ねる理由は、フォームを同じページに残したいということです。

私は次のようなURLを持っています:

/ link / submit /

投稿するフォーム:

/ link / linksubmit /

しかし、私はそれを/ link /submit/に戻して欲しいです。

私はこれを行うことができ、それは機能しますが、#errorMessagesFor()#は私のビューでは機能しなくなります。

フォームのフィールドに特定のエラーメッセージを表示したいので、これに「フラッシュ」メッセージを使用したくありません。検証エラーをフラッシュメッセージに渡す方法はおそらくありますか?

ありがとう、マイケル。

4

1 に答える 1

2

Wheelsは、あなたが提案しているパターン用に実際に設計されたものではありません。linksubmit検証が失敗した後、アクションでフォームページをレンダリングする必要があります。

これは従うべきパターンです:

<cffunction name="linksubmit">
    <cfscript>
        link = model("link").new(params.link);

        if (link.save()) {
            redirectTo(route="someRoute", success="The link was created successfully.");
        }
        else {
            flashInsert(error="There was an error saving the link. Please review the errors below and try again.");
            renderPage(action="submit");
        }
    </cfscript>
</cffunction>
于 2012-04-20T21:37:05.807 に答える