teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

書き直しました

2015/03/20 10:43

投稿

socha
socha

スコア10

answer CHANGED
@@ -1,3 +1,35 @@
1
+  terusu様、hotta様ありがとうございました。
2
+  おふたりの回答をヒントに、なんとかできそうです!
3
+
4
+  やはり、各テーブルにidフィールドが存在しないと、いろんなところでエラーがでますので、idフィールドを追加することとしました。
5
+  そしてテーブルをJOINするときに、primaryKeyを設定することで、希望通りの結果を得ることができました。
6
+
7
+
8
+ 顧客テーブル customers
9
+ |id|c_cd|c_name|
10
+ | 1|1111|aaaaaa|
11
+ | 2|2222|bbbbbb|
12
+
13
+ 商品テーブル items
14
+ |id|i_cd|i_name|c_cd|
15
+ | 1|a001|book_a|1111|
16
+ | 2|b002|book_b|2222|
17
+
18
+ ItemsController.php
1
- ```lang-<ここに言語を入力>
19
+ ```lang-php
20
+ public function index() {
21
+ $this->loadModel('Customer');
22
+ $this->Customer->primaryKey = 'c_cd';
23
+ $this->Item->primaryKey = 'c_cd';
24
+ $this->Item->bindModel(array(
25
+ 'hasOne' => array(
26
+ 'Customer' => array(
27
+ 'className' => 'Customer',
28
+ 'foreignKey' => 'c_cd',
29
+ 'fields' => array('c_name')))),false);
30
+ $this->set('items', $this->find('all'));
2
- コード
31
+ }
3
- ```
32
+ ```
33
+  これで正解なのかわりませんが、とりあえず私の環境で動作しましたので、解決とします。
34
+
35
+