City -> belongsTo -> Country
City:
id | name | country_code
Country:
id | name | code
Your city is linked to country through City.country_code = Country.code.
Now if you do the usual $belongsTo
public $belongsTo = array( "Country"=>array( 'className' => 'Country' ) );
You'll find cake will join the models on PK fields
LEFT JOIN `db`.`countries` AS `Country` ON (`City`.`country_id` = `Country`.`id`)
To solve this use "condition"
public $belongsTo = array(
"Country"=>array(
'className' => 'Country'
,'foreignKey' => false
,'conditions' => array('City.country_code = Country.code')
)
);
No comments:
Post a Comment