err in form automatically generated (crud) with n:m relation

New topics about Symfony 2 should go here

Moderators: dcobalt, tiagojsag

err in form automatically generated (crud) with n:m relation

Postby rikiko2 » Tue Jun 05, 2012 5:29 pm

Hi,
I have a n:m relation LanguageToken-<>-LanguageTemplate as follow.
I build automatically (./app/console generate:doctrine:crud ) my module
and I get this error on creating a new LanguageToken entity:

Warning: spl_object_hash() expects parameter 1 to be object, string given in /var/www/MyApplication/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php line 1095

How can I do?

file configuration of module (LanguageTokenType.php) is:
Code: Select all
<?php

namespace Tool\Bundle\DbTranslatorBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class LanguageTokenType extends AbstractType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('token')
            ->add('languageTemplates',null,
                array(
                    'required' => false,
                ))
            ->add('parent','choice', array(
            'empty_value' => 'choice a value',
            'required' => false,
            ))
        ;
    }

    public function getName()
    {
        return 'tool_bundle_dbtranslatorbundle_languagetokentype';
    }
}






LanguageToken entity is:
Code: Select all

<?php

namespace Tool\Bundle\DbTranslatorBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Tool\Bundle\DbTranslatorBundle\Entity\LanguageToken
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Tool\Bundle\DbTranslatorBundle\Entity\LanguageTokenRepository")
 */
class LanguageToken
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $token
     *
     * @ORM\Column(name="token", type="string", length=200)
     */
    private $token;

   
 
 
 
 /**
 * =======================================================
 * relation n:m LanguageTemplate- LanguageToken
 * =======================================================
 */   
   
    /**
     * @var ArrayCollection  $languageTemplates
     * @ORM\ManyToMany(targetEntity="LanguageTemplate", mappedBy="languageTokens")
     */
    private $languageTemplates;

    /**
     * nel costruttore c'e' la riga:
     * $this->languageToken = new \Doctrine\Common\Collections\ArrayCollection();
     */
    public function __construct()
    {
        $this->languageTemplates = new \Doctrine\Common\Collections\ArrayCollection();
        $this->children = new \Doctrine\Common\Collections\ArrayCollection();
    }
   
    /**
     * Add languageTemplate
     *
     * @param LanguageTemplate $languageTemplate
     */
    public function addLanguageTemplates(LanguageTemplate $languageTemplate)
    {
        $this->languageTemplates[] = $languageTemplate;
    }


    /**
     * Get $languageTemplates
     *
     * @return Doctrine\Common\Collections\Collection
     */
    public function getLanguageTemplates()
    {
        return $this->languageTemplates;     
    }
   
   
    /**
     * Set $languageTemplates
     *
     * @return Doctrine\Common\Collections\Collection
     */
    public function setLanguageTemplates(Doctrine\Common\Collections\Collection $languageTemplates)
    {
        $this->languageTemplates=$languageTemplates;     
    }

/**
 * =======================================================
 * relation n:m LanguageTemplate- LanguageToken
 * ================================================(end)=
 */ 

 /**
  * ==============================================================
  * === Tree ===================================================
  * ==============================================================
 */
   
    /**
     * @ORM\OneToMany(targetEntity="LanguageToken", mappedBy="parent")
     */
    private $children;

    /**
     * @ORM\ManyToOne(targetEntity="LanguageToken", inversedBy="children")
     * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
     */
    private $parent;

    /**     
    public function __construct() {       
        //parent::__construct();
        $this->children = new \Doctrine\Common\Collections\ArrayCollection();
    }
    */
   
    public function getParent(){
        return $this->parent;
    }
 
    public function setParent($parent){
        $this->parent=$parent;
    }

 
 /**
  * ==============================================================
  * === Tree ===================================================
  * ============================================== (end) =========
 */   
   
   
   
   
   
    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set token
     *
     * @param string $token
     */
    public function setToken($token)
    {
        $this->token = $token;
    }

    /**
     * Get token
     *
     * @return string
     */
    public function getToken()
    {
        return $this->token;
    }
   
    public function __toString()
    {
        return $this->getToken();
    }
   
}
User avatar
rikiko2
Faithful Member
 
Posts: 259
Joined: Mon Apr 18, 2011 12:49 pm

Return to General Symfony 2 discussion

Who is online

Users browsing this forum: No registered users and 15 guests