{"id":1576,"date":"2022-08-30T15:17:41","date_gmt":"2022-08-30T15:17:41","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2013\/11\/27\/symfony-2-doctrine-onetomany-delete-from-many-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:17:41","modified_gmt":"2022-08-30T15:17:41","slug":"symfony-2-doctrine-onetomany-delete-from-many-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/symfony-2-doctrine-onetomany-delete-from-many-collection-of-common-programming-errors\/","title":{"rendered":"Symfony 2 &#8211; Doctrine &#8211; oneToMany : delete from many-Collection of common programming errors"},"content":{"rendered":"<p>I have two entities : Episode and Version. When I trie to delete a version a get an exception:<\/p>\n<blockquote>\n<p>Notice: Undefined index: episode in \/var\/www\/Mendrock\/vendor\/doctrine\/orm\/lib\/Doctrine\/ORM\/Persisters\/BasicEntityPersister.php line 1561<\/p>\n<\/blockquote>\n<p>I already check relations but I don&#8217;t found the error.<\/p>\n<p>My entites: <strong>Episode<\/strong><\/p>\n<pre><code>namespace Mendrock\\Bundle\\SagaBundle\\Entity;\n\nuse Doctrine\\ORM\\Mapping as ORM;\n\n\/**\n * Mendrock\\Bundle\\SagaBundle\\Entity\\Episode\n *\n * @ORM\\Table(name=\"episode\")\n * @ORM\\Entity(repositoryClass=\"Mendrock\\Bundle\\SagaBundle\\Repository\\EpisodeRepository\")\n *\/\nclass Episode {\n\n    ...\n\n    \/**\n     * \n     * @ORM\\OneToMany(targetEntity=\"Version\", mappedBy=\"episode\", cascade={\"remove\", \"persist\"})\n     *\/\n    private $versions;\n<\/code><\/pre>\n<p><strong>Version<\/strong><\/p>\n<pre><code>namespace Mendrock\\Bundle\\SagaBundle\\Entity;\n\nuse Doctrine\\ORM\\Mapping as ORM;\nuse Gedmo\\Mapping\\Annotation as Gedmo;\n\n\/**\n * Mendrock\\Bundle\\SagaBundle\\Entity\\EpisodeVersion\n *\n * @ORM\\Table(name=\"version\")\n * @ORM\\Entity(repositoryClass=\"Mendrock\\Bundle\\SagaBundle\\Repository\\EpisodeVersionRepository\")\n *\/\nclass Version {\n\n    ...\n\n    \/**\n     * @ORM\\ManyToOne(targetEntity=\"Episode\", inversedBy=\"versions\", cascade={\"persist\"})\n     * @ORM\\JoinColumn(name=\"episode_id\", referencedColumnName=\"id\")\n     *\/\n    private $episode;\n\n    ...\n<\/code><\/pre>\n<p>** Controler **<\/p>\n<pre><code>    \/**\n    *\n    * @Route(\"\/versionConfirmeDelete\/{id}\", options={\"expose\"=true})\n    * @Method(\"GET\")\n    * @Template()\n    *\/\n    public function versionConfirmeDeleteAction($id) {\n        $em = $this-&gt;getDoctrine()-&gt;getManager();\n\n        $entity = $em-&gt;getRepository('MendrockSagaBundle:Version')-&gt;find($id);\n\n        if (!$entity) {\n            throw $this-&gt;createNotFoundException('Unable to find Version entity.');\n        }\n\n        $deleteForm = $this-&gt;createDeleteForm($id);\n\n        return array(\n            'entity' =&gt; $entity,\n            'delete_form' =&gt; $deleteForm-&gt;createView(),\n        );\n    }\n\n    \/**\n    * Deletes a Episode entity.\n    *\n    * @Route(\"\/versionDelete\/{id}\")\n    * @Method(\"POST\")\n    *\/\n    public function versionDeleteAction(Request $request, $id) {\n        $form = $this-&gt;createDeleteForm($id);\n        $form-&gt;bind($request);\n\n        if ($form-&gt;isValid()) {\n            $em = $this-&gt;getDoctrine()-&gt;getManager();\n            $entity = $em-&gt;getRepository('MendrockSagaBundle:Version')-&gt;find($id);\n            $episode = $entity-&gt;getEpisode();\n            if (!$entity) {\n                throw $this-&gt;createNotFoundException('Unable to find Version entity.');\n            }\n\n            $em-&gt;remove($entity);\n            $em-&gt;flush();\n            $this-&gt;get('session')-&gt;setFlash('success', 'La version \"' . $entity . '\" de l\\'\u00e9pisode \"'.$episode.'\" \u00e0 \u00e9t\u00e9 supprim\u00e9 !');\n        } else {\n\n            $this-&gt;get('session')-&gt;setFlash('error', 'Impossible de supprimer la version \"' . $entity . '\".');\n        }\n\n        return $this-&gt;redirect($this-&gt;generateUrl('mendrock_saga_default_episodes'));\n    }\n    #################################################################\n    ### Commun     ##################################################\n    #################################################################\n\n    private function createDeleteForm($id) {\n        return $this-&gt;createFormBuilder(array('id' =&gt; $id))\n                        -&gt;add('id', 'hidden')\n                        -&gt;getForm()\n        ;\n    }\n<\/code><\/pre>\n<p>Any ideas of my problem ?<\/p>\n<ol>\n<li>\n<p>I found the error, it was an other relation for this entities who make problem. Name of attribut was not corresponded.<\/p>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2013-11-27 11:53:04. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>I have two entities : Episode and Version. When I trie to delete a version a get an exception: Notice: Undefined index: episode in \/var\/www\/Mendrock\/vendor\/doctrine\/orm\/lib\/Doctrine\/ORM\/Persisters\/BasicEntityPersister.php line 1561 I already check relations but I don&#8217;t found the error. My entites: Episode namespace Mendrock\\Bundle\\SagaBundle\\Entity; use Doctrine\\ORM\\Mapping as ORM; \/** * Mendrock\\Bundle\\SagaBundle\\Entity\\Episode * * @ORM\\Table(name=&#8221;episode&#8221;) * @ORM\\Entity(repositoryClass=&#8221;Mendrock\\Bundle\\SagaBundle\\Repository\\EpisodeRepository&#8221;) *\/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1576","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=1576"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1576\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=1576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=1576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=1576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}