public function testDetach()
 {
     $homer = $this->repository->findOneBy('name', 'Homer');
     $father = Role::find(1);
     $this->assertEquals(1, $homer->roles->count());
     $homer = $this->repository->detach($homer, 'roles', $father);
     // Refresh.
     $homer->load('roles');
     $this->assertEquals(0, $homer->roles->count());
 }
Beispiel #2
0
 /**
  * Create project
  *
  * @param string $name
  * @param User $owner
  *
  * @return project
  */
 public function create($name, $owner, $budget, $description = '')
 {
     if (empty($name)) {
         throw new Exception('Project name cannot be empty!', 2000);
     }
     $this->_validateOwner($owner);
     $this->_validateBudget($budget);
     // Existing name
     $existing = $this->repo->findOneBy(array('name' => $name, 'budget' => $budget));
     if (!is_null($existing)) {
         throw new Exception('Project name already registered within budget ("' . $budget->getName() . '")!', 2001);
     }
     $project = new project();
     $project->setName($name);
     $project->setOwner($owner->getId());
     $project->setBudget($budget);
     $project->setDescription($description);
     $this->_persistAndFlush($project);
     return $project;
 }
 /**
  * Create SubProject
  *
  * @param string $name
  * @param User $owner
  *
  * @return SubProject
  */
 public function create($name, $project, $description = '')
 {
     if (empty($name)) {
         throw new Exception('SubProject name cannot be empty!', 2000);
     }
     $this->_validateProject($project);
     // Existing name
     $existing = $this->repo->findOneBy(array('name' => $name, 'project' => $project));
     if (!is_null($existing) && $project->getId() != 0) {
         throw new Exception('SubProject name already registered within project ("' . $project->getName() . '::' . $name . '")!', 2001);
     }
     $budgetRepo = $this->doctrine->getRepository('UKMecoBundle:Budget');
     $budget = $budgetRepo->findOneById($project->getBudget());
     $this->_validateBudget($budget);
     $subProject = new SubProject();
     $subProject->setName($name);
     $subProject->setProject($project);
     $subProject->setBudget($budget);
     $subProject->setDescription($description);
     $this->_persistAndFlush($subProject);
     return $subProject;
 }