回答編集履歴

1

書き直しました

2015/03/20 10:43

投稿

socha
socha

スコア10

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