Я использую Knp/DoctrineBehaviors
для перевода содержимого моей базы данных. Я следовал инструкции и создал 2 объекта: 1 для непереводимого контента и другой для переводимых полей.
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Contract\Entity\TranslatableInterface;
use Knp\DoctrineBehaviors\Model\Translatable\TranslatableTrait;
/**
* Class Test
* @package App\Entity
* @ORM\Entity()
*/
class Test implements TranslatableInterface
{
use TranslatableTrait;
/**
* @var integer
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Id()
*/
private $id;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
}
и объект перевода:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Contract\Entity\TranslationInterface;
use Knp\DoctrineBehaviors\Model\Translatable\TranslationTrait;
/**
* Class TestTranslation
* @package App\Entity
* @ORM\Entity()
*/
class TestTranslation implements TranslationInterface
{
use TranslationTrait;
/**
* @var
* @ORM\Column(type="string")
*/
private $name;
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @param mixed $name
*/
public function setName($name): void
{
$this->name = $name;
}
}
Я также добавил Bundle в мои файлы. php file.
Но когда я запускаю команду php bin/console doctrine:schema:update --force
, чтобы создать таблицу, выдается ошибка: No identifier/primary key specified for Entity "App\Entity\TestTranslation". Every Entity must have an identifier/p rimary key.