1

私はCodeIgniterでeBayスタイルの(しかしより単純な)ショップを作成しています。アイテムのコード/コントローラーを処理するための最良の方法を知りたいです。

現時点では、メインコントローラー(ルート内)であるカテゴリーコントローラーがあります。/ category / idは特定のカテゴリのアイテムのリストを表示することになっており、/categoryまたは/はすべてのアイテムを表示します。

コントローラのカテゴリインデックス($ id = 0){}は、カテゴリリストを生成するカテゴリヘルパーをロードし、それをビューにエコーアウトします。

これで、アイテムアスペクトを追加する段階になりました...ユーザーはアイテムを追加し、特定のアイテムを表示できる必要があり、カテゴリコードはすべてのアイテムまたは特定のカテゴリのアイテムを表示できる必要があります。

add_item、view_itemを備えたアイテムコントローラーを作成することを考えていましたが、カテゴリコントローラー内からカテゴリリストを取得する方法を考えています。

アイテムモデルをロードし、カテゴリに基づいてアイテムのリストをフェッチし、リストを変数に割り当て、リストをエコーするアイテムヘルパーが必要ですか?また、ユーザーが特定のアイテムを表示したい場合は、アイテムコントローラーview_itemをロードし、add_itemなどを追加しますか?

また、アイテムを表示しているときにカテゴリを表示したいので、このようにすると、アイテムコントローラ内にカテゴリヘルパーをロードする必要があります...これはコードの繰り返しによる悪い習慣ですか?

4

1 に答える 1

1

要するに、これが私がすることです。

  • /、すべてのアイテムを表示します。
  • / category / xyz、カテゴリXYZのすべてのアイテムを表示します。
  • / item / view / xyz、アイテムXYZを表示します。
  • / item / add、アイテムを追加します。
  • ..。

コントローラ全体でモデルを再利用するのは通常のことです。そうでなければ怖いでしょう。これは、多くのコードの重複を意味します。ヘルパーを可能な限り再利用するのも普通です。それがヘルパーの目標です!多くの場所で再利用される機能を実装するため。同じ行のコピーと貼り付けを開始すると、それは再利用を行っていないときです。関数を作成して再利用します。

覚えておいてください、

  • モデルはデータを処理します。(カテゴリ、アイテム、入札、...)
  • コントローラはHTTPリクエストとレスポンスを処理します。(適切なモデルのロード、適切なビューの出力、...)
  • ヘルパーは頻繁な操作を扱います。(あなたのモデル、あなたの見解、あなたの要求、...)

お役に立てれば。

于 2012-10-17T01:29:03.597 に答える