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

Symfony2: Deleting record in m:n-relationship

我在删除 m:n-table 中的条目时遇到问题。我尝试了 this 解决方案,但出现错误:"ContextErrorException: Catchable Fatal Error: Argument 1 passed to Pso\ProjectBundle\Entity\Project::removeUser() must be an instance of Pso\LogBundle\Entity\User, string given, called in C:\xampp\htdocs\pso\src\Pso\ProjectBundle\Controller\ProjectController.php on line 59 and defined in C:\xampp\htdocs\pso\src\Pso\ProjectBundle\Entity\Project.php line 452"

我有一个 Class 项目,其功能为:

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

}

现在我想从 table project_user 中删除一个条目。此 table 实现了来自用户和项目

的 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 table 中用户的id,$projectid 是相关项目。任何解决方案的提示都将不胜感激。

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

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