Два полезных сценария для псевдонимов:
1. Несколько внешних ключей для одной модели
Например, ваша таблица photos
имеет два поля: created_user_id
& modified_user_id
var $belongsTo = array(
'CreatedUser' => array(
'className' => 'User',
'foreignKey' => 'created_user_id',
...
),
'ModifiedUser' => array(
'className' => 'User',
'foreignKey' => 'modified_user_id',
...
),
);
2. Создание логических слов, специфичных для домена вашего приложения
Используя поле условий в массиве, вы можете указать различные типы моделей:
var $hasMany = array(
'ApprovedUser' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'conditions' => array(
'User.approved' => 1,
'User.deleted' => 0
),
...
),
'UnapprovedUser' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'conditions' => array(
'User.approved' => 0,
'User.deleted' => 0
),
...
),
'DeletedUser' => array(
'className' => 'User',
'foreignKey' => 'group_id',
'conditions' => array('User.deleted' => 1),
...
),
);
В вышеприведенном примере модель группы имеет разных типов пользователей (утвержденных, неутвержденных и удаленных). Использование псевдонимов помогает сделать ваш код очень элегантным.