Doctrine Translatable create new translation query issue
Notice: This thread is very old.
- lukas.sirhal
- Backer | 20
Hello nette friends,
i decided to use ORM doctrine in nette i start with a Kdyby Doctrine its works fine and i do not had problem to involvement into my test project but i want to use Translation via Zenify/DoctrineBehaviors by TomasVotruba and i have problem with creating insert into DB I have Entities according tutorials the first one Pokus:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;
/**
* Description of Pokus
*
* @author Lukas Sirhal
* @ORM\Entity
* @ORM\Table(name="pokus")
*/
class Pokus extends \Kdyby\Doctrine\Entities\BaseEntity{
use ORMBehaviors\Translatable\Translatable;
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
*/
protected $id;
/**
* @ORM\Column(type="integer")
*/
protected $number;
// /**
// * {@inheritdoc}
// */
// public static function getTranslationEntityClass()
// {
// return 'PokusTranslation';
// }
public function __call($method, $arguments)
{
return $this->proxyCurrentLocaleTranslation($method, $arguments);
}
public function getId(){
return $this->id;
}
public function getNumber(){
return $this->number;
}
public function setNumber($number){
$this->number = $number;
}
}
?>
And second entity for translations is:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Model as ORMBehaviors;
/**
* Description of PokusTranslation
*
* @author Lukas Sirhal
* @ORM\Entity
* @ORM\Table(name="pokus_translation")
*/
class PokusTranslation extends \Kdyby\Doctrine\Entities\BaseEntity {
use ORMBehaviors\Translatable\Translation;
/**
* @ORM\Column(type="string")
*/
protected $name;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
?>
At the end the usage of this entities
<?php
$pokus = new Entity\Pokus;
$pokus->setNumber(8);
$pokus->translate('en')->setName("hello");
$pokus->translate('cs')->setName("ahoj");
$pokus->mergeNewTranslations();
$this->em->persist($pokus);
$pokus->mergeNewTranslations();
$this->em->flush();
?>
Before this a generated the SQL code via
new \Doctrine\ORM\Tools\SchemaTool($this->em)->getCreatedSchemSql($classes)
and the SQL a post into my DB but the EntityManager create only 1 insert to the
Pokus table and forgot on the Translation table.
Do somebody know what is wrong. THX