EasyAdmin 3 如何根据查询从操作 createEntity 设置关联
Posted
技术标签:
【中文标题】EasyAdmin 3 如何根据查询从操作 createEntity 设置关联【英文标题】:EasyAdmin 3 how to set association from action createEntity based on query 【发布时间】:2021-10-27 15:31:18 【问题描述】:我希望创建一个添加到新操作的操作,但会根据添加的 url 参数预填充实体。例如设置关联。
文档显示了如何覆盖 createEntity 方法的设置值,但是该方法无法从请求中获取参数,因此我无法根据传递的参数设置关联。
这类似于How to set a default value in AssociationField EasyAdmin 3,但正如在本例中所提到的,请求不可用。
【问题讨论】:
【参考方案1】:原来我们可以从请求堆栈中获取请求。
public function createEntity(string $entityFqcn)
/** @var AgentAccreditation $entity */
$entity = parent::createEntity($entityFqcn);
$request = $this->get('request_stack')->getCurrentRequest();
if ($agentId = $request->query->get('agentId'))
$agentRepository = $this->getDoctrine()->getRepository(Agent::class);
$agent = $agentRepository->find($agentId);
$entity->setAgent($agent);
return $entity;
【讨论】:
以上是关于EasyAdmin 3 如何根据查询从操作 createEntity 设置关联的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony EasyAdmin 3 中创建数据验证系统