Symfony2:删除m:n-relationship中的记录

时间:2015-03-01 20:32:30

标签: symfony many-to-many crud

我在删除m:n-table中的条目时遇到问题。我尝试了this解决方案,但是我收到错误:“ContextErrorException:Catchable Fatal Error:传递给Pso \ ProjectBundle \ Entity \ Project :: removeUser()的参数1必须是Pso \ LogBundle \ Entity \ User的实例,给定的字符串,在第59行的C:\ xampp \ htdocs \ pso \ src \ Pso \ ProjectBundle \ Controller \ ProjectController.php中调用,并在C:\ xampp \ htdocs \ pso \ src \ Pso \ ProjectBundle \ Entity \ Project中定义.php第452行“

我有一个具有以下功能的类项目:

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

}

现在我想从表project_user中删除一个条目。该表实现了用户和项目的n:m关系

我是我的控制器我试图调整链接的解决方案:

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();
}

$ id是n:m表中用户的id,$ projectid是相关项目。任何解决方案的提示都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

错误非常明确。你给removeUser()函数一个字符串,它是用户的id,而期望的参数类型是User。

由于$ id,您必须从数据库中检索用户,然后将此用户传递给该函数。