【发布时间】:2018-12-07 11:33:00
【问题描述】:
我有 2 个实体:
class Opponent
{
...
...
...
}
class Process
{
/**
* @var array
*
* @ORM\Column(name="answers_in_related_questionnaires", type="json", nullable=true)
*/
private $answersInRelatedQuestionnaires = [];
.
.
.
}
我在该领域的答案中包含对象对手的其他问题
"opponent": {
"id":1088,
"name":"Inora Life Versicherung"
}
我想在实体进程中编写一个 getter,它不仅从对手那里获取值 id 和 name,而且还获取整个实体 Opponent。像这样的:
private function getOpponent() : Opponent
{
$id = $this->answersInRelatedQuestionnaires['opponent']['id'];
return $entityManager->getRepository(Opponent::class)->find($id)
}
我已阅读,在实体中使用实体管理器不是一个好主意。我的问题有哪些解决方案?我可以在 Process 实体中使用 Process 存储库吗?
【问题讨论】:
-
实体之间有关系吗?也许您应该发布您的实体结构以及您想要实现的目标。
-
是的,关系很多
-
整个结构非常复杂。我想实现,用一种方法 $process->getOpponent(); 获取整个 Opponent 对象
-
因为我们看不到实体结构,我认为实现这一目标的最佳方法是使用学说关联/关系 -> symfony.com/doc/current/doctrine/associations.html
-
与 JSON 字段的关联/关系?恐怕,这是不可能的。
标签: php json symfony orm doctrine