0

古典的な Post モデルがあり、Author モデルも作成したとします。

いくつかの基本的な質問があります。

  1. Post オブジェクトは、PostsController 内で自動的に作成されますか?

  2. AuthorsController 内で Post のインスタンスを作成するには、これが唯一の方法です

$this->Post = ClassRegistry::init('Post');

「 $this->Post 」を実行することで、この行に Post 変数が作成されると想定していることに注意してください。私は正しいですか?

前もって感謝します!

4

2 に答える 2

4

モデルの関連付けを調べます。関連付けが適切に設定されていれば、次のことが可能になります。

$this->Author->Post

Authorscontroller から Post モデルにアクセスします。モデルが関連していなくてもアクセスする必要がある場合は、 $uses arrayを使用してアクセスできます。

最初の質問に関しては、あなたは正しいです。すべてのコントローラーは、/lib/ にあるデフォルトの Cake Controller クラスをインポートする Appcontroller を拡張します。$uses 配列で指定されたすべてのモデルがロードされた後、名前がクラス名と同じモデルがロードされているのは、 cakePHP コントローラ ファイルの 376 行目で確認できます。

于 2012-07-01T02:41:57.040 に答える
0

使用配列内のすべてのモデル

usesプロパティ$this->MmodelNameで宣言されたすべてのモデルにアクセスできます-このプロパティが宣言されていない場合、デフォルトでコントローラーに対応するモデルになります-つまり-> model。PostsContorllerPost

最初の参照で作成/インスタンス化されたものとして宣言されたモデル$uses-つまり、遅延して作成されます。

于 2013-01-20T17:43:35.947 に答える