0

私のアプリケーションでは、コントローラーが一般的に使用する多くのメソッドがあります。最初にそれらをコントローラーにコピーしましたが、次にそれらをAppControllerに配置する必要があることがわかりました。だから私は。「$this->commonmethod」によって派生コントローラーからこれらのメソッドに到達します

AppControllerに配置したメソッドはさまざまなタイプのデータを作成するため、データベース内の4〜5個の異なるテーブルにそれらを配置する必要があります。ほとんどのテーブルは相互に関係がありません。

しかし、私のコントローラーのほとんどは、そのテーブルを使用して関連データをフェッチします。

(クックブックの例を確認しました。ブログ、カテゴリ、タグに関する例があります。テーブルがそれらの間に関係している場合)

  1. 一般的なコントローラーコードをプラグインまたはコンポーネントに入れる必要がありますか?または、決定基準は何でしょうか?
  2. コントローラまたはコンポーネントから複数のデータベーステーブルを使用することは可能ですか?
  3. この場合、データソースまたは動作が適切ですか。

前もって感謝します

4

2 に答える 2

1

最良の方法は(可能であれば)データベースを再設計することです。なぜなら、cakephpでは、優れたデータベース設計が問題の半分を解決するからです。これが不可能な場合は、2つ目はコンポーネントを使用することです。このコンポーネントを使用すると、複数のデータベーステーブルを作成できます。

于 2012-04-16T15:38:04.897 に答える
1

データベース構造、コントローラーメソッドの機能、およびそれらの使用方法についてよく知られていないため、最善のアプローチが何であるかを言うのは難しいです。

しかし、あなたの質問の1つは非常に簡単です。

コントローラまたはコンポーネントから複数のデータベーステーブルを使用することは可能ですか?

はい、それは可能です。テーブルごとにモデルを作成するだけです(public $useTable = 'tablenamecakeがモデル名からテーブル名を自動的に検出できない場合に使用します)。次に、AppController(コードがそこにとどまると考えて)で、これを使用します。

public $uses = array('List', 'all', 'models', 'you', 'need');
于 2012-04-16T15:43:51.170 に答える