我有这个数据库设计
Applicant Table
id | country_id | country_now_id
Country Table
id | name
country_id是Country Table的FK,country_now_id也是Country Table的FK。我的问题是我如何在模型关系中写这个?
我有这段代码:
class Applicant extends AppModel {
public $belongsTo = array(
'Country'=>array(
'className'=>'Country',
'foreignKey'=>'country_id'
),
);
.....
我不知道如何添加country_now_id并将其置于该关系中。我甚至不确定使用$belongsTo
是否正确。我仍然是CakePHP框架的新手。非常感谢您的帮助!
谢谢! :)
答案 0 :(得分:4)
更新:我设法解决了这个问题
public $belongsTo = array(
'Job'=>array(
'className'=>'Job',
'foreignKey'=>'psm_id',
),
'Country'=>array(
'className'=>'Country',
'foreignKey'=>'country_id'
),
'NowCountry'=>array(
'className'=>'Country',
'foreignKey'=>'now_country'
),
);
答案 1 :(得分:2)
尝试
class Applicant extends AppModel {
public $belongsTo = array(
'Country'=>array(
'className'=>'Country',
'foreignKey'=>'country_id'
),
'CountryNow' => array(
'className' => ' Country',
'foreignKey' => 'country_now_id'
)
);
.....
这样,如果你这样做
$this->Applicant->find('all', array('contain'=>array('Country', 'CountryNow')
例如,你会得到像这样的东西
Applicant1
Country
CountryNow
Applicant2
Country
CountryNow
您正在以正确的方式使用belongsTo
...现在。但除非你向我们解释你为什么要使用这种关系,否则我们实际上无法确定。例如,如果您希望一个申请人拥有两个国家,那么好,您就是好人。但申请人是否有可能拥有两个以上的国家?如果发生这种情况,那么模型的结构将变得很痛苦。如果可以,也许重新考虑逻辑,如果没有,让我们希望总有两个国家。