{"id":1613,"date":"2022-08-30T15:17:59","date_gmt":"2022-08-30T15:17:59","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2013\/11\/27\/symfony2-spl_object_hash-expects-parameter-1-to-be-object-string-given-in-doctrine-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:17:59","modified_gmt":"2022-08-30T15:17:59","slug":"symfony2-spl_object_hash-expects-parameter-1-to-be-object-string-given-in-doctrine-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/symfony2-spl_object_hash-expects-parameter-1-to-be-object-string-given-in-doctrine-collection-of-common-programming-errors\/","title":{"rendered":"Symfony2: spl_object_hash() expects parameter 1 to be object, string given in Doctrine-Collection of common programming errors"},"content":{"rendered":"<p>I am trying to populate the database with the object User and Person by executing<\/p>\n<p>persist and flush.<\/p>\n<p>First of all, I am creating the Person object and persist and flush it:<\/p>\n<pre><code>$person-&gt;setFirstname($enquiry-&gt;getFirstname());\n$person-&gt;setLastname($enquiry-&gt;getLastname());\n$person-&gt;setLastname($enquiry-&gt;getLastname());\n$person-&gt;setSex($enquiry-&gt;getSex());\n$person-&gt;setEmail($enquiry-&gt;getEmail());\n$person-&gt;setAddress1($enquiry-&gt;getAddress1());\n$person-&gt;setAddress2($enquiry-&gt;getAddress2());\n$person-&gt;setCity($enquiry-&gt;getCity());\n$person-&gt;setZipcode($enquiry-&gt;getZipcode());\n$country = $em-&gt;getRepository('SciForumVersion2Bundle:Country')-&gt;findOneById($enquiry-&gt;getCountry());  \n$person-&gt;setCountry($country);\n\n$em-&gt;persist($person);\n$em-&gt;flush();\n<\/code><\/pre>\n<p>And then my User object:<\/p>\n<pre><code>$user-&gt;setEmail($enquiry-&gt;getEmail());\n$user-&gt;setPassword($enquiry-&gt;getPassword());\n$user-&gt;setPersonId($person-&gt;getId());\n$user-&gt;setDegree($enquiry-&gt;getDegree());\n$user-&gt;setSex($enquiry-&gt;getSex());\n$user-&gt;setOrganization($enquiry-&gt;getOrganization());\n$user-&gt;setTelephone($enquiry-&gt;getTelephone());\n$user-&gt;setFax($enquiry-&gt;getFax());\n$user-&gt;setWorkplace($enquiry-&gt;getWorkplace());  \n$user-&gt;setJobtype($enquiry-&gt;getJobtype());\n$user-&gt;setResearchField($enquiry-&gt;getResearchField());\n$user-&gt;setManageConference(0);\n$user-&gt;setIp( $IP);\n$user-&gt;setStatus( 0 );\n$user-&gt;setDateRegistered( time() );\n\n$em-&gt;persist($user);\n$em-&gt;flush();\n<\/code><\/pre>\n<p>But when trying to flush() the persist of the user object, I am getting the error:<\/p>\n<pre><code>Warning: spl_object_hash() expects parameter 1 to be object, string given in \/home\/milos\/workspace\/conference2.0\/vendor\/doctrine\/lib\/Doctrine\/ORM\/UnitOfWork.php line 1095 \n<\/code><\/pre>\n<p>And here is the entier LOG:<\/p>\n<pre><code>Notified event \"kernel.request\" to listener \"Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\FrameworkBundle\\EventListener\\RouterListener::onEarlyKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\FrameworkBundle\\EventListener\\SessionListener::onKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Component\\Security\\Http\\Firewall::onKernelRequest\".\nPopulated SecurityContext with an anonymous Token\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\FrameworkBundle\\EventListener\\RouterListener::onKernelRequest\".\nMatched route \"SciForumVersion2Bundle_security_register\" (parameters: \"_controller\": \"SciForum\\Version2Bundle\\Controller\\SecurityController::registerAction\", \"_route\": \"SciForumVersion2Bundle_security_register\")\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\AsseticBundle\\EventListener\\RequestListener::onKernelRequest\".\nNotified event \"kernel.controller\" to listener \"Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RequestDataCollector::onKernelController\".\nNotified event \"kernel.controller\" to listener \"Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ControllerListener::onKernelController\".\nNotified event \"kernel.controller\" to listener \"Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ParamConverterListener::onKernelController\".\nNotified event \"kernel.controller\" to listener \"Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\TemplateListener::onKernelController\".\nNotified event \"kernel.controller\" to listener \"JMS\\SecurityExtraBundle\\Controller\\ControllerListener::onCoreController\".\nSET NAMES UTF8 ([])\nSELECT t0.id AS id1, t0.country AS country2, t0.phone_prefix AS phone_prefix3 FROM countries t0 ([])\nSELECT t0.id AS id1, t0.degree AS degree2 FROM web_user_degree t0 ([])\nSELECT t0.id AS id1, t0.place AS place2 FROM web_user_workplace t0 ([])\nSELECT t0.id AS id1, t0.code AS code2, t0.type AS type3 FROM web_user_jobtype t0 ([])\nSELECT t0.id AS id1, t0.name AS name2 FROM web_user_field t0 ([])\nSELECT t0.id AS id1, t0.email AS email2, t0.password AS password3, t0.salt AS salt4, t0.sex AS sex5, t0.department AS department6, t0.organization AS organization7, t0.telephone AS telephone8, t0.fax AS fax9, t0.research_keywords AS research_keywords10, t0.manage_conference AS manage_conference11, t0.ip AS ip12, t0.status AS status13, t0.date_registered AS date_registered14, t0.person_id AS person_id15, t0.degree AS degree16, t0.workplace AS workplace17, t0.jobtype AS jobtype18, t0.research_field AS research_field19, t0.person_id AS person_id20 FROM web_user t0 WHERE t0.email = ? ([\"cuculovic@mdpi.com\"])\nSELECT t0.id AS id1, t0.country AS country2, t0.phone_prefix AS phone_prefix3 FROM countries t0 WHERE t0.id = ? ([\"196\"])\nINSERT INTO person (firstname, middlename, lastname, sex, email, address1, address2, city, state, zipcode, country) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ({\"1\":\"Milos\",\"2\":null,\"3\":\"Cuculovic\",\"4\":\"m\",\"5\":\"cuculovic@mdpi.com\",\"6\":\"Kandererstrasse 25\",\"7\":null,\"8\":\"Basel\",\"9\":null,\"10\":\"4057\",\"11\":196})\nNotified event \"kernel.exception\" to listener \"Symfony\\Component\\Security\\Http\\Firewall\\ExceptionListener::onKernelException\".\nNotified event \"kernel.exception\" to listener \"Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelException\".\nNotified event \"kernel.exception\" to listener \"Symfony\\Component\\HttpKernel\\EventListener\\ExceptionListener::onKernelException\".\nErrorException: Warning: spl_object_hash() expects parameter 1 to be object, string given in \/home\/milos\/workspace\/conference2.0\/vendor\/doctrine\/lib\/Doctrine\/ORM\/UnitOfWork.php line 1095 (uncaught exception) at \/home\/milos\/workspace\/conference2.0\/vendor\/symfony\/src\/Symfony\/Component\/HttpKernel\/Debug\/ErrorHandler.php line 65\nNotified event \"kernel.request\" to listener \"Symfony\\Component\\HttpKernel\\EventListener\\ProfilerListener::onKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\FrameworkBundle\\EventListener\\RouterListener::onEarlyKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\FrameworkBundle\\EventListener\\SessionListener::onKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Component\\Security\\Http\\Firewall::onKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\FrameworkBundle\\EventListener\\RouterListener::onKernelRequest\".\nNotified event \"kernel.request\" to listener \"Symfony\\Bundle\\AsseticBundle\\EventListener\\RequestListener::onKernelRequest\".\nNotified event \"kernel.controller\" to listener \"Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RequestDataCollector::onKernelController\".\nNotified event \"kernel.controller\" to listener \"Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ControllerListener::onKernelController\".\nNotified event \"kernel.controller\" to listener \"Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\ParamConverterListener::onKernelController\".\nNotified event \"kernel.controller\" to listener \"Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\TemplateListener::onKernelController\".\nNotified event \"kernel.controller\" to listener \"JMS\\SecurityExtraBundle\\Controller\\ControllerListener::onCoreController\".\n<\/code><\/pre>\n<ol>\n<li>\n<p>I have finally found the problem:<\/p>\n<p>When creating the object user, instead of setting those fields<\/p>\n<pre><code>$user-&gt;setDegree();\n$user-&gt;setWorkplace();  \n$user-&gt;setJobtype();\n$user-&gt;setResearchField();\n<\/code><\/pre>\n<p>as objects (because of the OneToMany relation), I gived here only a string, from the form.<\/p>\n<p>So, for those fields, the code would be:<\/p>\n<pre><code>$degree     = $em-&gt;getRepository('SciForumVersion2Bundle:Degree')-&gt;findOneById($enquiry-&gt;getDegree());\n$workplace  = $em-&gt;getRepository('SciForumVersion2Bundle:Workplace')-&gt;findOneById($enquiry-&gt;getWorkplace());\n$job_type   = $em-&gt;getRepository('SciForumVersion2Bundle:JobType')-&gt;findOneById($enquiry-&gt;getJobtype());\n$research_field = $em-&gt;getRepository('SciForumVersion2Bundle:ResearchField')-&gt;findOneById($enquiry-&gt;getResearchField());\n<\/code><\/pre>\n<p>And then:<\/p>\n<pre><code>$user-&gt;setPerson($person);\n$user-&gt;setWorkplace($workplace);    \n$user-&gt;setJobtype($job_type);\n$user-&gt;setResearchField($research_field);\n<\/code><\/pre>\n<p>So: Be careful when you are getting this kind of warnings, you probably have to check if you are populating your object in the right way.<\/p>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2013-11-27 12:02:02. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>I am trying to populate the database with the object User and Person by executing persist and flush. First of all, I am creating the Person object and persist and flush it: $person-&gt;setFirstname($enquiry-&gt;getFirstname()); $person-&gt;setLastname($enquiry-&gt;getLastname()); $person-&gt;setLastname($enquiry-&gt;getLastname()); $person-&gt;setSex($enquiry-&gt;getSex()); $person-&gt;setEmail($enquiry-&gt;getEmail()); $person-&gt;setAddress1($enquiry-&gt;getAddress1()); $person-&gt;setAddress2($enquiry-&gt;getAddress2()); $person-&gt;setCity($enquiry-&gt;getCity()); $person-&gt;setZipcode($enquiry-&gt;getZipcode()); $country = $em-&gt;getRepository(&#8216;SciForumVersion2Bundle:Country&#8217;)-&gt;findOneById($enquiry-&gt;getCountry()); $person-&gt;setCountry($country); $em-&gt;persist($person); $em-&gt;flush(); And then my User object: $user-&gt;setEmail($enquiry-&gt;getEmail()); $user-&gt;setPassword($enquiry-&gt;getPassword()); $user-&gt;setPersonId($person-&gt;getId()); [&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-1613","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1613","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=1613"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1613\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=1613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=1613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=1613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}