Symfony2:删除m:n关系中的记录

Symfony2:删除m:n关系中的记录,symfony,many-to-many,crud,Symfony,Many To Many,Crud,在删除m:n表中的条目时,我遇到了一个问题。我尝试了解决方案,但得到了错误:ContextErrorException:可捕获致命错误:传递给Pso\ProjectBundle\Entity\Project::removeUser的参数1必须是Pso\LogBundle\Entity\User的实例,给定字符串,在第59行的C:\xampp\htdocs\pso\src\pso\ProjectBundle\Controller\ProjectController.php中调用,并在C:\xamp

在删除m:n表中的条目时,我遇到了一个问题。我尝试了解决方案,但得到了错误:ContextErrorException:可捕获致命错误:传递给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\u user中删除一个条目。此表实现了来自用户和项目的n:m关系

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

$id是n:m表中用户的id,$projectd是相关项目的id。任何解决方案的提示都将不胜感激。

错误非常明显。您正在为removeUser函数提供一个字符串,该字符串是用户的id,而预期的参数类型是用户

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