Я работаю с DBIx :: Class в фреймворке Catalyst.Моя локальная цель - добавить новые отношения «многие ко многим» между пользователями и, скажем, задачами.Но есть один маленький трюк, который мне нужен.Пользователь может иметь разные роли в задаче (например, «работник» или «зритель»).
Итак, у меня есть пользователи таблица с этими полями:
У меня есть задача таблица с этими полями:
И у меня есть таблица отношений user_tasks с этими полями:
Я настроил has_many из пользователей до user_tasks , has_many из задач до user_tasks и соответствующие отношения many_to_many между пользователями и задачами .И эта простая часть работает как надо.
Затем, например, я хочу получить свой список пользователей, включая роль пользователя в задаче, определяемую $ task_id:
my $users = $schema->resultset('User')->with_task_role($task_id);
while (my $u = $users->next) {
print "User: " . $u->name . ", role: " . $u->get_column('task_role');
}
Так как я должензакодировать with_task_role пользовательский набор результатов, чтобы получить это дополнительное поле с ролью пользователя в моем запросе?