Zend Framework2 のチュートリアルを読んだ後、これは疑問に思っていますが、おそらく一般的な MVC ロジックに適用されます...
チュートリアルの例では、追加ビュー ( ) を作成し、その後、多くのコードが複製されmodule/Album/view/album/album/add.phtml
た編集テンプレート ( ) を作成します。module/Album/view/album/album/edit.phtml
編集スクリプトには基本的に、提供された ID をチェックする追加のロジックがありますが、ユーザーには同じフォームが表示されます。
さて、MVC 規則を完全には使用していない同様のケースでは、追加オプションと編集オプションの両方を処理するスクリプトを作成します。ID が指定された場合、ロジックは「編集」アクションを想定し、その ID のデータベース レコードを取得してフォーム フィールドに入力しようとし、無効な ID が指定された場合はエラーを返します。
MVC への教科書的なアプローチは、アプリケーション全体のすべてのデータベース対話に対してこのアプローチに従う場合、実際には DRY 原則をうまくカプセル化していないように思われます。
私はまだいくつかの MVC の概念に頭を悩ませようとしていますが、命名規則以外に、編集アクションと追加アクションが同じビュー テンプレートを使用できない (または使用すべきでない) 理由はありますか?
チュートリアルに示されているように、テンプレート名を期待するようにルーティングが設定されていることがわかりますが、共通フォームをレンダリングするビュー テンプレートを呼び出して、それをおよびprocess.phtml
内に含めることができます。それは賢明なアプローチですか?解決策としてそれを避けるべきいくつかの理由はありますか?add.phtml
edit.phtml