Использование DoctrineBehaviors, переводимого в Symfony 4? - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь использовать переводимое расширение DoctrineBehaviors в Symfony 4. Просто настройте тест в соответствии с документацией пример:

переводимый объект:

<?php

     namespace App\Entity;

    use Doctrine\ORM\Mapping as ORM;
    use Knp\DoctrineBehaviors\Model as ORMBehaviors;

   /**
     * @ORM\Entity(repositoryClass="App\Repository\FAQRepository")
     */
    class FAQ
    {
        use ORMBehaviors\Translatable\Translatable;

        /**
         * @ORM\Id()
         * @ORM\GeneratedValue()
         * @ORM\Column(type="integer")
         */
        protected $id;

        /.**
         * @ORM\Column(type="datetime", nullable=true)
         */
        protected $updatedAt;

        public function getId(): ?int
        {
            return $this->id;
        }

        public function getUpdatedAt(): ?\DateTimeInterface
        {
            return $this->updatedAt;
        }

        public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
        {
            $this->updatedAt = $updatedAt;

            return $this;
        }
    }

сущность перевода:

    <?php

    namespace App\Entity;

    use Doctrine\ORM\Mapping as ORM;
    use Knp\DoctrineBehaviors\Model as ORMBehaviors;

    /**
     * @ORM\Entity
     */
    class FAQTranslation
    {
        use ORMBehaviors\Translatable\Translation;

        /**
         * @ORM\Column(type="text")
         */
        protected $question;

        /**
         * @ORM\Column(type="text")
         */
        protected $answer;

        /**
         * @ORM\Column(type="integer", nullable=true)
         */
        protected $category;


        public function getQuestion(): ?string
        {
            return $this->question;
        }

        public function setQuestion(string $question): self
        {
            $this->question = $question;

            return $this;
        }

        public function getAnswer(): ?string
        {
            return $this->answer;
        }

        public function setAnswer(string $answer): self
        {
            $this->answer = $answer;

            return $this;
        }


        public function getCategory(): ?int
        {
            return $this->category;
        }

        public function setCategory(?int $category): self
        {
            $this->category = $category;

            return $this;
        }
    }

Тестирование переводимого объекта:

        /**
         * @Route("/test", name="test")
         */
        public function testfaq()
        {
            $em = $this->getDoctrine()->getManager();

            $faq = new FAQ();
            $faq->translate('fr')->setQuestion('Quelle est la couleur ?');
            $faq->translate('en')->setQuestion('What is the color ?');
            $em->persist($faq);

            $faq->mergeNewTranslations();
            $em->flush();

            return $this->render('app/test.html.twig', [
            ]);
        }

В таблицу faq добавлен новый идентификатор.Но в таблице faqtranslation ничего не сохраняется.

Bundles.php:

    Knp\DoctrineBehaviors\Bundle\DoctrineBehaviorsBundle::class => ['all' => true],

Кажется, что все найденные мной документы относятся к Symfony 3 или даже к Symfony 2,Можно ли использовать перевод DoctrineBehaviors в Symfony 4?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...