我剛剛創建了一個具有多對多關係(User-Group)和下面的代碼的新項目。在Doctrine中手動保存多對多關係
正如你可以猜測在代碼中我試圖手動分配組給用戶,但它不分配任何東西......任何想法?
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嗨halfer,我創建了兩個組。的var_dump(計數($組));返回int(2)。 – user1077220
OK,進行調試。我不使用Doctrine(Propel for me),但是'$ user-> save()'返回一個布爾成功?查看文檔和/或庫代碼。在保存之後,我會親自放置一個臨時'exit()',並確保所有警告/錯誤報告都已打開。 – halfer