我有一个用户表和一个库表,它们之间的关系是多对多的。
所以我有一个user_library
表。
我设法将数据从用户添加到库表,但此后我无法恢复数据。
我这样添加它们:
$em = $this->getDoctrine()->getManager();
$repoUser = $em->getRepository('App:User');
$user = $repoUser->findOneBy(['token' => $token_user]);
$library = new Library();
$library->setIdBook($id_book);
$user->addLibrary($library);
$em->persist($library);
$em->persist($user);
$em->flush();
我以为只是做:$user->getLibrary()->getIdBook()
就足够了,但事实并非如此。
您认为我如何获得与id_book
匹配的所有user
?
事实是,您的getLibrary返回ArrayCollection,您需要指定您确切想要的库
$libararies = $user->getLibrary() // <- this returns ArrayCollection
$library = $libraries->first() // <- return 1st element
基于此代码,您可以进行搜索,例如,或仅使用doctrine即可获取具有所需ID,用户的库,而无需直接从数据库中获取所需的任何内容
您的方法仅返回第一个元素。如何返回与我的用户对应的所有元素?
此外,当用户添加相同的数据时,该数据也会添加到数据库中。我正在为您放置屏幕截图,以便您了解。