Я пытаюсь смоделировать следующее:
Путешествие имеет идентификатор, fromCity и toCity.
Моя база данных выглядит следующим образом:
Таблица путешествий:
id | fromCity | toCity
1 2 4
2 4 2
Таблица из города:
id | name
2 paris
4 london
У меня есть модели, определенные для города и для поездки.
В моем файле модели для поездки я хочуобъявите файл $ hasOne, чтобы преобразовать идентификатор fromCity в название города.
Я пытался следовать руководству по CakePHP на hasOne (http://book.cakephp.org/view/80/hasOne), но не могу понять, как решитьдва внешних ключа.
Может кто-нибудь объяснить мне, как var $hasone = ...
должен искать этот случай?
Редактировать: Модели:
<?php class City extends AppModel { var $name='City';} ?>
<?php class Journey extends AppModel { var $name='Journey'; /*var $hasOne=array(...)*/} ?>
Edit 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'
)
);
Кажется, работает для первой записи таблицы поездок. Все остальные значения являются нулевыми. Я думаю, что проблема возникает из-за наличия в этом запросе двух столбцов с одинаковым именем.