Foo
コンポーネントがあり、コントローラーがなく、いくつかの結合されたモデルを持つという名前の CakePHP プラグインがあります。次のように構成されています。
/Plugin/Foo/Model/
-FooModel1.php
-FooModel2.php
-FooModel3.php
-FooModel4.php
標準 (非プラグイン) コードに接続するために、プラグイン モデルの 1 つが条件付きで と呼ばれる標準モデルに関連付けられBar
ます。これが問題に関連しているとは思いませんが、徹底したいと思います。
では、いくつかの層の深さFooController
を利用します。Containable
$params = array(
'conditions' => array('Bar.id' => $bar_id),
'contain' => array(
'FooModel1' => array(
'FooModel2' => array(
'FooModel3' => array('Something', 'FooModel4')
),
),
),
);
これにより、次のようなエラーが発生します。
Warning: Model "FooModel2" is not associated with model "FooModel3" [CORE\Cake\Model\Behavior\ContainableBehavior.php, line 339]
したがって、私のプラグイン コントローラーには、プラグイン モデルを含める必要があります。モデルの前に Foo (例: Foo.FooModel1
)を付けてみましContainable
たが、Foo という名前のモデルを取得しようとしているようです。プラグイン モデルの配列で と の両方を$hasAndBelongsToMany
試しましたが、どちらも機能しません。この関連付けを正しく設定するにはどうすればよいですか?'Model1' => array()
'Foo.Model1' => array()
補足: モデルをプラグインから標準/Model/
ディレクトリに移動すると、すべて正常に動作します。この問題は、コード自体のロジックではなく、誤った関連付けに起因しているようです。
助けてくれてありがとう。