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 从数据库中检索用户,然后将此用户传递给函数。
我在删除 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 从数据库中检索用户,然后将此用户传递给函数。