【发布时间】:2012-06-13 07:39:18
【问题描述】:
我刚刚创建了一个具有多对多关系(用户组)和以下代码的新项目。
正如您在代码中所猜到的那样,我正在尝试将组手动分配给用户,但它没有分配任何东西......有什么想法吗?
User:
columns:
id:
type: integer(4)
autoincrement: true
primary: true
username:
type: string(255)
password:
type: string(255)
attributes:
export: all
validate: true
Group:
tableName: group_table
columns:
id:
type: integer(4)
autoincrement: true
primary: true
name:
type: string(255)
relations:
Users:
foreignAlias: Groups
class: User
refClass: GroupUser
GroupUser:
columns:
group_id:
type: integer(4)
primary: true
user_id:
type: integer(4)
primary: true
relations:
Group:
foreignAlias: GroupUsers
User:
foreignAlias: GroupUsers
代码是这样的:
public function executeIndex(sfWebRequest $request)
{
$user = Doctrine_Core::getTable('User')->find(1);
$groups = Doctrine_Core::getTable('Group')->findAll();
$user->setGroups($groups);
$user->save();
$this->forward('default', 'module');
}
【问题讨论】:
-
您是否检查过
$groups确实包含结果?如果这是空的,大概$user将保持不变。 -
@halfer 嗨,halfer,我创建了两个组。 var_dump(count($groups));返回 int(2)。
-
OK,继续调试。我不使用 Doctrine (Propel for me) 但也许
$user->save()返回布尔成功?检查文档和/或库代码。我个人会在保存后放置一个临时的exit(),并确保打开所有警告/错误报告。
标签: symfony1 doctrine many-to-many symfony-1.4