У меня есть приложение, которое требует:
Пользователь владеет многими проектами.
у проекта есть один владелец.
Пользователь работает над многими проектами.
проекты имеют много пользователей.
так у меня есть 3 таблицы, пользователи, projects_users, проекты.
Отношения:
один пользователь (владелец) --- много проектов (создал_бай)
много пользователей (id) ---- через projects_users (user_id, project_id) ---- много проектов (id).
В Codeigniter я установил следующие отношения в моделях Datamapper:
Class Project extends DataMapper {
var $has_one = array(
'created_by' => array(
'class' => 'user',
'other_field' => 'owns'
)
);
var $has_many = array('user' => array(
'class' => 'user',
'other_field' => 'project',
'join_table' => 'projects_users'));
и ...
class User extends DataMapper {
var $has_many = array(
'project' => array(
'class' => 'project',
'other_field' => 'user',
'join_table' => 'projects_users'
),
'owns' => array(
'class' => 'project',
'other_field' => 'created_by'
)
);
Это, похоже, не работает, и я получаю рекурсивную ошибку.
Как правильно представить это отношение в datamapper?