私は以下をモデル化しようとしています:
ジャーニーには、id、fromCity および toCity があります。
私のDBは次のようになります。
テーブルジャーニー:
id | fromCity | toCity
1 2 4
2 4 2
テーブル fromCity:
id | name
2 paris
4 london
私は都市と旅のために定義されたモデルを持っています。
ジャーニーのモデル ファイルで、fromCity ID を都市の名前に解決するために $hasOne ファイルを宣言したいと考えています。
hasOne ( http://book.cakephp.org/view/80/hasOne ) の CakePHP チュートリアルに従おうとしましたが、2 つの外部キーを解決する方法がわかりません。
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'
)
);
ジャーニーテーブルの最初のエントリで機能するようです。他のすべての値は null です。このクエリに同じ名前の列が 2 つあることが問題の原因だと思います。