Symfonyがエンティティとしてエンティティを認識しないのはなぜですか? #2で見られるように、Symfonyはクラスを知っています。そして、それはNews Entityを見つけることができるので、教義も同じです。remove()が自分のエンティティを配列とみなす理由
/**
*
* @Route("/news/delete/{id}", name="news_delete")
*/
public function deleteAction($id) {
$toDelete = new News();
$em = $this->getDoctrine()->getManagers();
$toDelete = $this->getDoctrine()
->getRepository('AppBundle:News')
->findOneBy(array('id' => $id));
dump($toDelete); //Posted under #1
dump(get_class($toDelete)); //Posted under #2
$em->remove($toDelete);
$em->flush();
return $this->redirectToRoute('news_show', array(), 301);
}
#1:
News {#926 ▼
-id: 16
+headline: "1313"
+newsBody: "12313"
+date: DateTime {#1027 ▶}
+archiveDate: DateTime {#921 ▶}
-categories: PersistentCollection {#934 ▶}
}
#2:
"AppBundle\Entity\News"
EDIT: エラー:配列を返す私はgetManagersと呼ばれていること、それが私に指摘されたオフィスでは、アレイ
エラーメッセージを表示できますか? –
@Emanuel Oster done。 – HermanTheGermanHesse
エラーメッセージは、 '$ em'は' $ toDelete'ではなく配列であることを示しています。よく見ると、getManager()の代わりに 'getManagers()'を呼び出すことがわかります –