У меня есть следующая настройка: " У многих пользователей может быть много проектов (соавторов) "
/**
* @Entity @HasLifeCycleCallbacks
* @Table(name="projects")
*/
class Project implements \Zend_Acl_Resource_Interface {
/**
* @ManyToMany(targetEntity="User", mappedBy="projects")
* @OrderBy({"displayName" = "ASC", "username" = "ASC"})
*/
protected $collaborators;
..
}
/**
* @Entity
* @Table(name="users")
*/
class User implements \Zend_Acl_Role_Interface {
/**
* @ManyToMany(targetEntity="Project", inversedBy="collaborators")
*/
protected $projects;
...
}
Я попытался удалить соавтора, используя следующее
$user = Application_DAO_User::findById($this->_getParam('userid'));
$proj = Application_DAO_Project::getProjectById($this->_getParam('id'));
Application_DAO_Project::removeCollaborator($proj, $user); // <---
// Application_DAO_User
public static function findById($id) {
return self::getStaticEm()->find('Application\Models\User', $id);
}
// Application_DAO_Project
public static function getProjectById($id) {
return self::getStaticEm()->find('Application\Models\Project', $id);
}
public static function removeCollaborator(Project $proj, User $collaborator) { // <---
$proj->getCollaborators()->remove($collaborator);
$collaborator->getProjects()->remove($proj);
self::getStaticEm()->flush();
}
И ошибок нет, но база данных остается прежней ...