Кохана 3,1 орм.Как сделать это has_one relashionship? - PullRequest
3 голосов
/ 10 июля 2011

У меня 2 модели: Address и Country. Теперь у каждого адреса ровно одна страна. Итак, Address модель имеет:

protected $_has_one = array('country' => array(
    'model' => 'Country',
    'foreign_key' => 'code',
));

Я загружаю Address объект:

$addr = ORM::factory('Address', 1);
$country = $addr->country->find();

Но $country всегда содержит первую запись вместо связанной записи из таблицы Country.
Я что-то здесь не так делаю? Если да, то как правильно?

РЕДАКТИРОВАТЬ:
Таблица Country имеет PK code и не содержит FK.
Стол Address имеет ПК id и ФК country_code

1 Ответ

4 голосов
/ 16 августа 2011

Ваше свойство has_one должно быть следующим:

protected $_has_one = array('country' => array(
  'model' => 'Country',
  'foreign_key' => 'country_code',
));

Внешний ключ - это ключ в вашей таблице текущей модели, который ссылается на первичный ключ связанной модели.

...