Отношение модели CakePHP, имеющее 2 внешних ключа в одной таблице

У меня есть эта конструкция базы данных

Applicant Table id | country_id | country_now_id Country Table id | name 

Country_id является FK для таблицы стран, а country_now_id также является FK таблицы стран. Мой вопрос в том, как я напишу это в отношении модели?

У меня есть этот код:

 class Applicant extends AppModel { public $belongsTo = array( 'Country'=>array( 'className'=>'Country', 'foreignKey'=>'country_id' ), ); ..... 

Я не знаю, как добавить country_now_id и поместить его в это отношение. Я даже не уверен, что если использовать $belongsTo это правильный путь. Я все еще новичок в CakePHP Framework. Ваша помощь будет принята с благодарностью!

Спасибо! 🙂

Solutions Collecting From Web of "Отношение модели CakePHP, имеющее 2 внешних ключа в одной таблице"

Обновление: мне удалось решить эту проблему, выполнив это

  public $belongsTo = array( 'Job'=>array( 'className'=>'Job', 'foreignKey'=>'psm_id', ), 'Country'=>array( 'className'=>'Country', 'foreignKey'=>'country_id' ), 'NowCountry'=>array( 'className'=>'Country', 'foreignKey'=>'now_country' ), ); 

Пытаться

 class Applicant extends AppModel { public $belongsTo = array( 'Country'=>array( 'className'=>'Country', 'foreignKey'=>'country_id' ), 'CountryNow' => array( 'className' => ' Country', 'foreignKey' => 'country_now_id' ) ); ..... 

Таким образом, если вы это сделаете

 $this->Applicant->find('all', array('contain'=>array('Country', 'CountryNow') 

например, вы получите что-то вроде

 Applicant1 Country CountryNow Applicant2 Country CountryNow 

Вы используете belongsTo правильный путь … пока. Но мы не можем точно знать, если вы не объясните нам, почему вы используете этот тип отношений. Например, если вы хотите, чтобы у одного заявителя было две страны, тогда все в порядке, вы в порядке. Но есть ли вероятность, что у заявителя будет более двух стран? Если это может произойти, структура ваших моделей станет болью. Если можно, возможно, переосмыслите логику, если нет, будем надеяться, что всегда есть всегда две страны.