如何通过邮政编码将一个表连接到另一个表?

时间:2015-06-09 10:07:05

标签: mysql cakephp-2.0 model-associations

我有两张桌子,我想加入Ad.zipcode Zipcode.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 |
+----+----------+---------+----------+

表: zipcodes

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

我想加入包含在ads表格中的邮政编码,我需要在第二个表格中获取记录ads zipcode756114

我曾尝试加入$hasMany,但zipcodes表中没有为什么加入不工作的ID。

我的代码:

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

在我的aboave代码中,我得到了空白数组。请帮我。 嗨,我正在使用CakePHP版本2.x

如何将模型与其他模型相关联?

2 个答案:

答案 0 :(得分:1)

在您的邮政编码模型中,您需要:

public $primaryKey = 'zip';

另一方面,为什么你在那张桌子上没有自动数字PK呢?邮政编码通常包含非数字字符......

答案 1 :(得分:1)

在广告模型中:

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

在Zipcode Model中:

public $primaryKey = 'zip';

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