私はまだMVCの動作方法について多少混乱しています。現実世界のMVC - フォームの扱い
私はウィジェットを販売するウェブサイトを持っていると言います。私はリスティングページ/widgets/list
と製品ページ/widgets/product/123
を持っています。
これらの両方ともwidget
コントローラを使用して、list
およびproduct
メソッドを呼び出すことができます。私はまた、さまざまなもののためのいくつかの他のコントローラを持っていると言うことができます。
今すぐニュースレターのサインアップボックスを自分のヘッダー(サイトのすべてのページ)に追加します。 これはどのように機能しますか? /newsletter/signup
しかし、エラーが発生した場合(あなたのメールアドレスが正しく入力されなかった場合)はどうなりますか?表示されているページ(例:/widgets/list
)は表示されますが、newsletter
コントローラを実行する必要があります。 widget
コントローラはコントローラnewsletter
を知らないので、コードをそこに置くことはできません...どうやってこれを動作させるのですか?
編集:いいえAJAXしてください - もっと簡単に理解できます。これはjavascriptが無効になっているときのフォールバックと考えてください。
編集2:この種のものをカバーする任意の例やチュートリアルがはるかに
編集3をいただければ幸いです。それは、アクションを呼び出すためのビューのために許容されますか?たとえば、ヘッダーはNewsletter->index()
5つのアクションを持つコントローラが10個ある既存のWebサイトを持っている場合、ヘッダーにニュースレターのサインアップを追加すると、50個の関数を編集する必要がありますか? – Greg
それは別のページに投稿する例外です。ほとんどのフォームは複数のページには表示されず、ニュースレター、ログイン、多分登録のようなものだけが表示されます。全体的に、上記はかなり効果的です。 – ryeguy