私はCodeigniterとMVCパターンでアプリケーションを作成しています。 私はエントリ、ユーザー、カテゴリのような異なるオブジェクトのための再利用可能な管理ツールを作成したいと思っています。さまざまなコントローラやビュー、複数の時間にわたって特定のツールセットが必要になります。MVCとモデルでの表示
私は$name
は、ツール(ちょうどHTMLフォームになります)を設定し、それらのフォームを処理するために$data
必要な変数(オブジェクトの最も可能性が高い$id
)の名前になります$this->load_admin_tools($name,$data)
ような何かを呼び出すことができるようにしたいです。
私はので、私は一つの場所にいくつかのツールを追加または削除することができることをやりたいです。
私はツールが表示され、その後、(/編集の/ etcを削除するフォームを)適切なビューをロードする必要がある場合、私は許可をチェックしますmodel_admin_toolsを作成することを考えていました。私はそれらがコントローラであることを知っています(パーミッションをチェックして何かを表示するかどうかを決める)が、同じコードを何度も何度も何度も何度も何度も何度も繰り返していると、それらをモデルに入れるよりも最悪です。私はコントローラ内にプライベート関数を作成することができましたが、その後、その関数をすべてのコントローラに入れなければなりません。
これを達成するより良い方法はありますか?私はヘルパーを考えていましたが、再びヘルパーは「ビュー」ではありません。それとも、私はあまりにも面白いですか?
ありがとうございます。
は、はい、私はヘルパーのすべての時間を使用しますが、私はそれらのビューをロードしていませんよ。明確にするために。私は5つの異なるHTMLフォーム(例えば、編集/削除/禁止など)をユーザのアクションに対して言うようにロードしたい。だから私はそれがロードされるべきかどうか、そしてどのような形式であるかをチェックする必要があります。次に、適切なHTMLフォーム(ビュー)を読み込む必要があります。ですから、最後にはモデル内で '$ this-> load-> view( 'user_delete_form')'となります。そして私が知っているように、これはコントローラで行う必要があります。私はちょっと混乱しているのですが、もっと良い方法があるのだろうかと思います。 – user1245750
私の編集した答えを見て、あなたの質問に答えられるかどうかを見てください。 – Catfish
それは正確に私が達成したいものではありません。その方法では、モデルを呼び出して結果を確認してからビューをロードする必要があるからです。そのコードブロックはコントローラ間で何度も何度も繰り返されます;)理想的には、そのコードを(モデルのような)一つの関数に置き、それを呼び出すだけです。しかし、そのようにして私はモデルに 'load-> view()'を持ちます。私はそれが可能かどうか私は確認する必要があるかわからない。つまり、私は、ビュー内でスイッチを作成し、必要なビューをロードするための第2パラメータに基づいてスイッチを作成できます。 1行のコードでチェックできない場合でも、3行は20よりはるかに優れています – user1245750