2

私は以下をモデル化しようとしています:

ジャーニーには、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 つあることが問題の原因だと思います。

4

2 に答える 2

2

Rinが述べたように、beLongsTo代わりにを使用する必要があります。hasOne

于 2010-12-23T01:55:39.617 に答える
0

まず、あなたのリンクは1.2ドキュメントにつながります。おそらくダウンロードし1.3た.

では1.3、おそらくbelongsToonFromCityToCityModels も使用する必要があります (しかし、私は間違っている可能性があります。ずっと前に使用していました :)

于 2010-12-22T20:39:47.427 に答える