使用Symfony将数据从一个表插入另一个表

时间:2015-09-24 10:29:05

标签: php mysql symfony

对于这个问题,我发现Stack溢出的答案很少,但这些问题对我的问题没有帮助。我使用的是symfony2框架。

我想将数据从一个表插入另一个表并删除第一个表中的数据。

我们假设有两个名为Book& amp;作者。 (请注意,Author表有其他表字段)

  public function BooktoAuthorAction(Request $request, $id) {

    $response = new Response();
    $em = $this->getDoctrine()->getManager();

    $books = $em->getRepository("BooksBundle:Books")->findBy(array('booktype' => 'novel'));

    $em = $this->getEntityManager();    
    $query = $em->createQuery(
                    'INSERT INTO contact(bookName, isbn)
                     VALUES('book_name', 'isbn_no')
                         );   
    $em = $this->getDoctrine()->getManager();

      $em->flush();
   }

    return $response;
}

我有一个名为' book_type'其中我存储了特定书所属的类别。我想更改书籍类型,例如当从Book表格中插入数据到作者表格时我想要更改book_type '小说'到戏剧'

此外,我想在数据传输到作者表后从Book表中删除数据行。

*请注意,我更改了实际代码的变量名称方法名称。

更新

我找到了解决问题的方法。我已经更新了代码。我现在使用实体而不是查询将数据从Book表传递给Author表。

*作者和书籍是两个不同套装中的两个不同实体

public function BookAuthorAction(Request $request, $id) {

    $response = new Response();
    $em = $this->getDoctrine()->getManager();

    $books = $em->getRepository('BooksBundleBundle:Books')->find($id);
    $author = new Author();

    $author->setBookName($books->getBookName());
    $author->setIsbnNo($books->getIsbnNo());

    $author->setBookType('drama'); //passing a string as a book type

    $em->persist($author);
    $em->remove($books);
    $em->flush();

    return $response;
}

1 个答案:

答案 0 :(得分:0)

尝试映射表并进行相应更新; This可能有帮助