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();
}
}
