Ответ 1
Два полезных сценария для псевдонимов:
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),
...
),
);
В приведенном выше примере модель Группы имеет разные типы пользователей (одобренные, неутвержденные и удаленные). Использование псевдонимов помогает сделать ваш код очень элегантным.