2015-06-09 33 views
0

我有兩個表我想加入Ad.zipcodeZipcode.zip請檢查下面的細節 -如何通過郵編將一張桌子加入另一張桌子?

表:廣告

+----+----------+---------+----------+ 
| id | user_id | zipcode | photo | 
+----+----------+---------+----------+ 
| 1 | 1  | 751010 | img1.jpg | 
| 2 | 2  | 123456 | img2.jpg | 
| 3 | 3  | 756114 | img3.jpg | 
| 4 | 4  | 121010 | img4.jpg | 
| 5 | 5  | 789520 | img5.jpg | 
| 6 | 6  | 404040 | img6.jpg | 
| 7 | 7  | 805020 | img7.jpg | 
+----+----------+---------+----------+ 

表:郵編

+--------+---------+----------+ 
| zip | city | state | 
+--------+---------+----------+ 
| 789520 | ctc  | odisha | 
| 756114 | bhadrak | odisha | 
| 123456 | bbsr | odisha | 
| 756114 | rlc  | odisha | 
| 789502 | bls  | odisha | 
---------+---------+----------+ 

我要加入與包含在ads表中的郵政編碼我需要獲取記錄在t他第二個表,adszipcode756114

我試圖在$hasMany但ID不存在投身於zipcodes表爲什麼要加入不工作。

我的代碼:

public $hasMany = array(
    'Zipcode' => array(
     'className' => 'Zipcode', 
     'foreignKey' => 'zip', 
    ), 
); 

在我aboave代碼我得到空數組。請幫幫我。 您好我正在使用CakePHP版本2.x

如何將模型與另一個模型關聯?

回答

1

在你的郵編模式,你需要:

public $primaryKey = 'zip'; 

在一個側面說明,爲什麼你不具備該表的autonumeric PK?郵政編碼通常包含非數字字符...

1

AD模型地方:

public $belongsTo = array(
    'Zipcode' => array(
     'className' => 'Zipcode', 
     'foreignKey' => 'zipcode', 
    ) 
); 

在郵編型號地方:

public $primaryKey = 'zip'; 

public $hasMany = array(
    'Ad' => array(
     'className' => 'Ad', 
     'foreignKey' => 'zipcode', 
    ) 
); 
+0

'zip'可以包含重複值。我如何設置主鍵? – Chinmay235