Отношение модели 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. Ваша помощь будет принята с благодарностью!

Благодарю вас!:)

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 правильный путь... пока. Но мы не можем знать наверняка, если вы не объясните нам, почему вы используете этот тип отношений. Например, если вы хотите, чтобы у одного заявителя было две страны, тогда все в порядке. Но есть ли шанс, что заявитель будет иметь более двух стран? Если это может произойти, то структура ваших моделей станет болью. Если вы можете, может быть, переосмыслите логику, если нет, будем надеяться, что всегда есть две страны.

Другие вопросы по тегам