Php 当实体从JSONSerializableBieInterface实现时禁用延迟加载

Php 当实体从JSONSerializableBieInterface实现时禁用延迟加载,php,doctrine,symfony4,Php,Doctrine,Symfony4,我的实体是这样的: <?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repositoryClass="App\Repository\WordRepository") */ class Word implements \JsonSerializable { const SOURCE_OXFORD = 'oxford';

我的实体是这样的:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

    /**
     * @ORM\Entity(repositoryClass="App\Repository\WordRepository")
     */
    class Word implements \JsonSerializable
    {
        const SOURCE_OXFORD = 'oxford';

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

        /**
         * @ORM\Column(type="string")
         */
        private $word;



        /**
         * @ORM\OneToMany(targetEntity="Definition", mappedBy="word")
         */
        private $definitions;


        /// other prorperties and setter/getters
        public function jsonSerialize()
        {
            return [
                'word' => $this->word,
                'definitions' => $this->definitions,
            ];
        }
    }
但我不想重复定义。当我对
json\u encode
the
$word


现在我的问题是:当一个实体从
jsonSerializabeInterface
实现时,如何禁用延迟加载?

为什么要将与基础架构相关的代码与域混合在一起,同时还要尝试攻击原则本身?从实体中删除接口,并使用a为您完成艰巨的工作


您的域将不再存在诸如序列化之类的低级问题,并且您将变得更加灵活,因为实体可以通过多种方式/格式进行序列化,具体取决于用例。

谢谢。我使用了
serializer
,但是当我在
定义
和另一个我在问题中没有提到的实体之间存在关系时,它有一些性能问题。我使用
JSM\serializer
解决了我的问题。无论如何,谢谢你;)
  foreach ($word->getDefinitions()  as $definition) {
      dump($definition->getDefinition());
  }