зі зв'язком В«багато-до-одногоВ». Model_Course extends ORM {$ _belongs_to = array (
'category' => array (
'model' => 'coursescategor',
'foreign_key' => 'id_category',
)
);
}
У класі Model_Course вказується назва моделі, що відповідає за пов'язану таблицю (у нашому випадку це модель для таблиці категорії курсів coursescategor), а також назва зовнішнього ключа id_category.
Зв'язок has_many використовується як В«один-до-багатьохВ». Наприклад, і один студент може бути записаний на кілька курсів. Таблиці usercourse і course ставляться як один-до-багатьох (Лістинг 17). p align="justify"> Лістін 17. Приклад моделі Model_ Usercourse зі зв'язком В«один-до-багатьохВ». Model_Usercourse extends ORM {$ _has_many = array (
'cour' => array (
'model' => 'course',
'foreign_key' => 'id_course',
)
);
}
У класі моделі Model_Usercourse вказується назва моделі, з якою пов'язана таблиця Usercourse, а також назва зовнішнього ключа id_course.
Зв'язок has_many "through" використовується як багато-до-багатьох. Наприклад, є три таблиці user, roles, roles_users. Треба зв'язати дві таблиці через roles_users. Це потрібно для призначення прав користувачів. Адмін вибирає користувача і на сторінку виводитися відповідна інформація, в тому числі і назва ролі (рис.15). br/>В
Рис.15 Зв'язок has_many "through"
Щоб зв'язати модель Model_Role з моделлю Model_Users, треба прописати в кожній моделі зв'язок, з якою моделлю зв'язується і через яку модель. Приклад зв'язку Model_Role з Model_Users в лістингу 18. p align="justify"> Лістинг 18. Модель Model_RoleModel_Role extends ORM {$ _table_name = 'roles'; $ _has_many = array ('users' => array ('through' => 'roles_users'));
}
Для опису зв'язку використовується стандартний синтаксис has_many з додаванням параметра through. Лістинг № 7 показує, що модель Model_Role пов'язана з Model_User через таблицю 'roles_users'. Зв'язок описується і в моделі Model_User (Лістинг 19). p align="justify"> Лістинг 19. Модель Model_User
class Model_User extends Model_Auth_User {$ _primary_key = 'id'; $ _table_name = 'users'; $ _has_many = array (
'roles' => array ('model' => 'role', 'through' => 'roles_users'),
);
Таким чином, під час реаліз...