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