我在删除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是相关项目。任何解决方案的提示都将受到赞赏。
答案 0 :(得分:0)
错误非常明确。你给removeUser()函数一个字符串,它是用户的id,而期望的参数类型是User。
由于$ id,您必须从数据库中检索用户,然后将此用户传递给该函数。