У меня есть модель пользователя, которая используется для хранения данных о пользователях системы стоматологического обследования.Cakephp - несколько моделей для одной таблицы
Как правило, будут существовать три типа пользователей: Admininistrator, Расположение Менеджер и Examiner.
Кажется, что необходимо рассматривать эти три роли как отдельные модели в моем приложении (представьте, как у меня будет другое представление для каждой роли с разными параметрами и т. Д.) Это кошмар).
Как мне настроить отношения в каждой модели.
Моя первая мысль:
//Administrator Model
class Administrator extends User {
$name = 'Administrator';
$table = 'User';
$belongsTo = array(
'User' => array(
'className' => 'User',
'conditions' => array('User.role' => 'administrator'),
)
);
}
И тогда модель User будет ссылаться на этот используя hasMany? В терминах конвенции CakePHP, как бы на самом деле точно это моделировать?
Кроме того, будет ли эта модель расширять модель User или AppModel?
ПОЧЕМУ ?! Не можете ли вы просто добавить одну «опцию» с соответствующими данными для каждого пользователя на основе роли? – yossi
Я согласен с тем, что наличие совершенно разных моделей для каждого типа пользователя может быть не лучшим дизайном. Но я не знаю достаточно подробностей, чтобы знать наверняка. Что касается ваших вопросов - у модели пользователя должен быть только один администратор, менеджер местоположений или экзаменатор, поэтому hasOne должен быть отношениями. Скорее всего, вы просто захотите, чтобы другие модели, администратор и т. Д. Расширили AppModel, а не User. – Kai