【发布时间】:2011-09-01 00:46:50
【问题描述】:
我正在使用 Catalyst 框架中的 DBIx::Class。我的本地目标是在用户和任务之间添加新的多对多关系。但我需要一个小技巧。用户可以在任务中扮演不同的角色(例如“工人”或“旁观者”)。
所以我有 users 表,其中包含以下字段:
- 身份证
- 姓名
我有包含这些字段的任务表:
- 身份证
- 标题
- 说明
我的关系表 user_tasks 包含以下字段:
- user_id
- task_id
- 角色
我已经设置了从users到user_tasks的has_many,从tasks到user_tasks的has_many以及对应的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 自定义结果集,以便在我的查询中获得这个带有用户任务角色的附加字段?
【问题讨论】:
标签: perl many-to-many catalyst dbix-class