gpt4 book ai didi

symfony - 如何从 symfony2 中删除实体

转载 作者:行者123 更新时间:2023-12-03 05:44:27 25 4
gpt4 key购买 nike

我的第一个 symfony2 项目是存储在数据库中的客人列表(在事件中受邀)。我有

  • 创建了实体类 Guest 及其所有变量(id、姓名、地址、电话号码等)
  • 在 mysql 数据库中创建了架构
  • 创建了一条用于向 Twig 模板“添加访客”的路线
  • 创建了一个表单类型

最后是 Controller 中的“createGuest”方法,一切正常。

我无法从数据库中删除访客。我已经阅读了网络上的所有教程,包括 Symfony2 官方书籍;它所说的只是:

删除对象

删除对象非常相似,但需要调用实体管理器的remove()方法:

$em->remove($product);
$em->flush();

它没有说明如何将 Controller deleteAction($id) 与 twig 模板连接起来(甚至“更新对象”部分也缺少文档)。我想要做的是列出具有 viewGuests 操作和 viewGuests Twig 模板的所有客人,每行旁边都有一个删除图标,您应该单击该图标来删除条目。很简单,但我找不到任何文档,也不知道从哪里开始。

public function deleteGuestAction($id)
{
$em = $this->getDoctrine()->getEntityManager();
$guest = $em->getRepository('GuestBundle:Guest')->find($id);

if (!$guest) {
throw $this->createNotFoundException('No guest found for id '.$id);
}

$em->remove($guest);
$em->flush();

return $this->redirect($this->generateUrl('GuestBundle:Page:viewGuests.html.twig'));
}

最佳答案

Symfony 很聪明,知道如何自己创建 find() :

public function deleteGuestAction(Guest $guest)
{
if (!$guest) {
throw $this->createNotFoundException('No guest found');
}

$em = $this->getDoctrine()->getEntityManager();
$em->remove($guest);
$em->flush();

return $this->redirect($this->generateUrl('GuestBundle:Page:viewGuests.html.twig'));
}

要在 Controller 中发送 ID,请使用 {{ path('your_route', {'id': guest.id}) }}

关于symfony - 如何从 symfony2 中删除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11809685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com