我正在从excel文件中读取一些数据,并将其保存到类A
的对象中。现在我必须确保数据的一个字段对应于特定实体的Id。即:
class A{
protected $entityId;
}
我必须确保$entityId
是特定实体的现有ID (我们称之为Foo
)。现在,可以使用choice
约束来实现此目的,方法是将choices
选项作为Foo
的所有现有ID提供。但是,这显然会导致性能开销。有没有标准/更好的方法来做到这一点?
答案 0 :(得分:0)
我对你正在做的事情感到有点困惑,因为你似乎在谈论Excel解析,但同时你提到choices
,我认为这与表格有关。
IMO你应该直接处理与你的实体的关系,而不仅仅是它的id。大多数情况下,直接将相关实体作为A类属性而不仅仅是id更好,Symfony可以很好地操纵这些行为。
然后让您的Excel解析器执行以下操作:
$relatedEntity = $this->relatedEntityRepository->find($entityId);
if (!$relatedEntity) {
throw new \Exception();
}
$entity->setRelatedEntity($relatedEntity);
执行此操作后,由于您正在讨论表单,因此您可以使用EntityType
字段,该字段将自动在数据库中执行请求。如果您需要过滤结果,请使用query_builder
。