- 締切済み
CakePHPのアソシエーションがうまくいかず困っています。
CakePHPのアソシエーションがうまくいかず困っています。 以下の3つのテーブルがあります。 [Table_A] id_a id_b name_a [Master_B] id_b name_b [Table_C] id_c id_a name_c Table_Aを中心にアソシエーションを設定しようと思い、modelを以下のように設定しました。 [Model A] class A extends AppModel { public $name = 'A'; public $useTable = 'Table_A'; public $primaryKey = 'id_a'; public $hasOne = array( 'C' => array('className' => 'C', 'foreignKey' => 'id_c' ) ); } [Model B] class B extends AppModel { public $name = 'B'; public $useTable = 'Table_B'; public $primaryKey = 'id_b'; } [Model C] class C extends AppModel { public $name = 'C'; public $useTable = 'Table_C'; public $primaryKey = 'id_c'; } そして、Controllerを以下のように設定しました。 [Controller A] $a = $this->A->find('all'); Controller Aでfindした結果、name_aとname_cの取得には成功しました。 そこでname_bも取得しようとしたのですが、どのようにアソシエーションを設定すればよいか、わかりません。 テーブルの項目は固定であり変更できないため、なんとかこれでアソシエーションを設定したいと思っています。 マニュアルやウェブサイトを調べたのですが、わかりませんでした。 ご教授のほどよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- takubou05
- ベストアンサー率52% (11/21)
一ヶ月近くたってしまいましたが、 大丈夫かな。 cakePHPのマニュアルをもう一度熟読したほうがいいかと思います。 テーブル名、モデル名、プライマリーのカラムの命名規則を認識してください。 A テーブルと Bテーブルの関係が分からないので、 アソシエーションの説明ができません。 AとBが 1対1 一対多 多対1 で定義の仕方が変わります。 cakePHPのリファレンスに記述してあるので、 熟読されてほうがよろしいかと思います。