我正在尝试建模以下内容:
旅程有一个 id、一个 fromCity 和一个 toCity。
我的数据库如下所示:
餐桌之旅:
id | fromCity | toCity
1 2 4
2 4 2
来自City的表:
id | name
2 paris
4 london
我为城市和旅程定义了模型。
在我的旅程模型文件中,我想声明一个 $hasOne 文件,以便将 fromCity id 解析为城市名称。
我尝试按照 hasOne ( http://book.cakephp.org/view/80/hasOne ) 上的 CakePHP 教程进行操作,但我不知道如何解析两个外键。
有人可以向我解释如何var $hasone = ...
寻找这种情况吗?
编辑:模型:
<?php class City extends AppModel { var $name='City';} ?>
<?php class Journey extends AppModel { var $name='Journey'; /*var $hasOne=array(...)*/} ?>
编辑2:
var $hasOne = array(
'CityFrom' => array(
'className' => 'City',
'conditions' => 'Journey.fromAirport = CityFrom.id',
'dependent' => true,
'foreignKey' => 'id = Journey.fromCity' ),
'CityTo' => array (
'className' => 'City',
'conditions' => 'Journey.toCity = CityTo.id',
'dependent' => true,
'foreignKey' => 'id = Journey.toCity'
)
);
似乎适用于旅程表的第一个条目。所有其他的值为空。我认为问题出在此查询中有两个具有相同名称的列。