2015-03-01 6 views
0

У меня есть проблема при удалении записи в m: n-table. Я попробовал решение this, но получаю сообщение об ошибке: «ContextErrorException: Catchable Fatal Error: аргумент 1, переданный в Pso \ ProjectBundle \ Entity \ Project :: removeUser() должен быть экземпляром Pso \ LogBundle \ Entity \ User, заданной строкой, вызывается в C: \ xampp \ htdocs \ pso \ src \ Pso \ ProjectBundle \ Controller \ ProjectController.php в строке 59 и определен в C: \ xampp \ htdocs \ pso \ src \ Pso \ ProjectBundle \ Entity \ Project.php строке 452 "Symfony2: Удаление записи в m: n-relationship

у меня есть проект класса с функцией:

/** 
* Remove users 
* 
* @param \Pso\LogBundle\Entity\User $users 
*/ 
public function removeUser(\Pso\LogBundle\Entity\User $users) 
{ 
    $this->users->removeElement($users); 

} 

Теперь я хочу, чтобы удалить запись из таблицы project_user. Эта таблица реализует п: т-отношения от пользователя и проекта

Im мой контроллер я пытался адаптировать связанное решение:

public function deleteUserProjectAction($id, $projectid, Request $request) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $project = $em->find('PsoProjectBundle:Project', $projectid); 

    $project->removeUser($id); 
    $em->persist($project); 
    $em->flush(); 
} 

$ идентификатор идентификатор пользователя в п: м таблицы и $ projectid связанный с этим проект. Любой намек на решение будет оценен.

ответ

0

Ошибка предельно ясна. Вы предоставляете функции removeUser() строку, которая является идентификатором пользователя, тогда как ожидаемым типом параметра является Пользователь.

Вы должны получить пользователя из БД через $ id, а затем передать этого пользователя функции.

Смежные вопросы