1

親愛なる友人へ: これは、プログラミングの問題というよりは、概念上の問題のように思えます。MVC は初めてで、何が何を呼び出すことができるかを理解するのに問題があります。プログラム制御の流れ。

問題: コントローラー A -- 呼び出し --> モデル A -- 呼び出し --> ビュー A. ビュー A が読み込まれると、コメントを挿入するためのフォームとサムビット ボタンが含まれます。

コメントが挿入 (および送信) されると、コントローラ B が呼び出されます -- 呼び出し -->Mocel B は、データをコメント テーブルに挿入します -- さらに、呼び出すビューはありません。

質問 1: モデル B からコントローラー A を呼び出す方法 (モデル B にはビューがないため)。ViewA を ModelB からロードすることは可能ですが、Controller a に既に存在するコードを書き直す必要があります。さらに、コメントフォームを多くのページに挿入したいので、それらすべてのページ (ビュー) を手動でリロードする必要があります。

質問 2: コメント フォーム (コントローラー B とモデル B) をコントローラー A とモデル A の一部にすることは可能ですが、コメント フォームは再利用可能なモジュールではなくなり、気に入ったすべてのページに挿入する必要があります。で使用されます。

質問 3: 作成中に何らかの概念的なエラーがありますか? それはMCVの仕組みですか?

概要:: コントローラー B とモーダル B によって管理されるフォームがあります (ビューがなく、コントローラー A、モデル A、およびビュー A によって管理されるページの一部として表示されます) モデル B は、ジョブを実行した後、コントローラー A を呼び出す必要があります (ページを更新できるようにします)どのように?BRAVE SOULSをよろしくお願いします

4

1 に答える 1

0

あなたの戦略は最初から少しずれていると思います

コントローラー A -- 呼び出し --> モデル A -- 呼び出し --> ビュー A

モデルがビューを呼び出すべきではありません。通常、コントローラーがこれを担当します。コントローラーに対してリクエストが行われ、コントローラーはモデルからすべてのデータを取得し、ビューを使用してフォーマット/テンプレート化し、ユーザーに出力します。コントローラーはすべてのリクエストの中心にある必要があります。

質問 1 モデル B からコントローラー A を呼び出す方法は?

モデル B はコントローラーを呼び出すべきではありません。MVC は実際にはこれを設計するものではありません。モデル B からのデータが必要な場合は、コントローラーから取得します。コントローラー A に存在する機能が必要な場合は、アプリのどこでも使用できるユーティリティ関数にリファクタリングします。

質問 2: コメント フォーム (コントローラー B とモデル B) をコントローラー A の一部にすることはできますか?

はい、これも優れたアプリ設計によるものです。あなたのモデルの 1 つがコメントを取得できると思います。おそらくユーザーごと、おそらく時間枠ごとです。コントローラ A から、そのモデル関数を呼び出すことができます。モデル$this->load->model('Post') をロードして投稿を撤回する$this->Post->most_recent_posts()

質問 3: 作成中に何らかの概念的なエラーがありますか? それはMCVの仕組みですか?

はい、あなたのサイトの機能はコントローラーとモデルにあまりにも密接に結びついています。機能を任意のコントローラーで使用できるように、より緩い/一般的である必要があります。

最後の/要点に答えたいと思いますが、いくつかのコードを見ると本当に役に立ちます。

于 2012-06-28T21:39:58.463 に答える