我的实体是这样的:
<?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,
];
}
}
该Definition
实体还与 有reversedBy
关系,Word
并且从 实施JsonSerializable
。
现在,当我找到一个特定的单词时,我必须遍历定义才能访问所有Definition
s (我认为是因为延迟加载)。像这样
foreach ($word->getDefinitions() as $definition) {
dump($definition->getDefinition());
}
但我不想迭代定义。我想访问所有定义,当json_encode
我$word
现在我的问题是:当实体实现时如何禁用延迟加载JsonSerializabelInterface
?