У меня есть приложение, которое требует:Многие к одному и многие ко многим на тех же объектах, использующих DataMapper ОРМ в Codeigniter
пользователь владеет многими проектами. проект имеет один владелец.
Пользователь работает над многими проектами. В проектах много пользователей.
поэтому у меня есть 3 стола, пользователи, проекты_услуги, проекты. Отношения являются:
один пользователь (владелец) --- много проектов (CREATED_BY)
многие пользователи (ID) ---- через projects_users (user_id, project_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?
правый - я вижу, мои «другие» поля не являются взаимными. Результат слишком долго смотрел на код. – Stevo