Php easy admin 3过滤器关联字段
我正在努力找到一个解决方案来过滤编辑视图中的关联字段列表 情况:Php easy admin 3过滤器关联字段,php,symfony,easyadmin,Php,Symfony,Easyadmin,我正在努力找到一个解决方案来过滤编辑视图中的关联字段列表 情况: 用户拥有允许供应商许多供应商 网站已启用供应商多个供应商 基于用户角色,我只想显示用户的允许供应商 是否可以过滤这些选项,以便用户看不到不允许的选项启用的供应商关联字段?这可以通过在configureFields中的字段上通过setFormTypeOptions更改选项来完成。 我在下面举了一个例子,检查用户角色是否不是ROLE\u ADMIN,如果不是,它将只显示允许的选择,这似乎正是我想要的方式 做了一些猜测和挖掘,因为文
拥有用户
许多供应商允许供应商
已启用供应商多个供应商网站
用户
的允许供应商
是否可以过滤这些选项,以便用户看不到不允许的选项
启用的供应商
关联字段?这可以通过在configureFields中的字段上通过setFormTypeOptions更改选项来完成。
我在下面举了一个例子,检查用户角色是否不是ROLE\u ADMIN
,如果不是,它将只显示允许的选择,这似乎正是我想要的方式
做了一些猜测和挖掘,因为文档中没有明确解释
public function configureFields(string $pageName): iterable
{
$fields = [];
if (array_search('ROLE_ADMIN', $this->getUser()->getRoles()) === false) {
/** @var User|null $user */
$user = $this->entityManager->getRepository(User::class)->findOneBy([
'username' => $this->getUser()->getUsername()
]);
if ($user) {
$fields[] = AssociationField::new('suppliers')->onlyOnForms()->setFormTypeOptions([
"choices" => $user->getEnabledSuppliers()->toArray()
]);
}
} else {
$fields[] = AssociationField::new('suppliers')->onlyOnForms();
}
return $fields;
}
您能告诉我您是如何实现
entitymanager
-属性的吗?我尝试通过构造函数进行注入,但中的构造函数没有在我的CrudConteller上调用