在 easy admin 中添加自定义操作
Add custom action in easy admin
我创建了一个允许接受实体的新操作。问题是所有实体都显示接受操作按钮,但我只希望它显示未接受的实体而不是已接受的实体。
已接受的实体的状态为 1 ,其他实体的状态为 0
这是我的配置操作方法
public function configureActions(Actions $actions): 动作
{
$accept_Deal = Action::new('accept','accept')
->linkToCrudAction('acceptAction');
return $actions
->add(Crud::PAGE_INDEX, $accept_Deal)
->disable( Action::NEW, Action::EDIT)
->add(Crud::PAGE_INDEX, Action::DETAIL)
->reorder(Crud::PAGE_INDEX, [Action::DETAIL, Action::DELETE]);
}
还有我的 accept Action 方法
public function acceptAction(AdminContext $context){
$id = $context->getRequest()->query->get('entityId');
$entity = $this->getDoctrine()->getRepository(Deal::class)->find($id);
$entity->setStatus(1);
$this->getDoctrine()->getManager()->persist($entity);
$this->getDoctrine()->getManager()->flush();
return $this->redirect($this->get(CrudUrlGenerator::class)->build()->setAction(Action::INDEX)->generateUrl());
}
我在文档中找到了解决方案,我不知道我是怎么错过的
public 函数 configureActions(Actions $actions): Actions
{
$accept_Deal = Action::new('accept','accept')
->linkToCrudAction('acceptAction')
->displayIf(static function ($entity) {
return $entity->getStatus() == 0 ;
});
return $actions
->add(Crud::PAGE_INDEX, $accept_Deal)
->disable( Action::NEW, Action::EDIT)
->add(Crud::PAGE_INDEX, Action::DETAIL)
->reorder(Crud::PAGE_INDEX, [Action::DETAIL, Action::DELETE]);
}
我创建了一个允许接受实体的新操作。问题是所有实体都显示接受操作按钮,但我只希望它显示未接受的实体而不是已接受的实体。 已接受的实体的状态为 1 ,其他实体的状态为 0
这是我的配置操作方法 public function configureActions(Actions $actions): 动作 {
$accept_Deal = Action::new('accept','accept')
->linkToCrudAction('acceptAction');
return $actions
->add(Crud::PAGE_INDEX, $accept_Deal)
->disable( Action::NEW, Action::EDIT)
->add(Crud::PAGE_INDEX, Action::DETAIL)
->reorder(Crud::PAGE_INDEX, [Action::DETAIL, Action::DELETE]);
}
还有我的 accept Action 方法
public function acceptAction(AdminContext $context){
$id = $context->getRequest()->query->get('entityId');
$entity = $this->getDoctrine()->getRepository(Deal::class)->find($id);
$entity->setStatus(1);
$this->getDoctrine()->getManager()->persist($entity);
$this->getDoctrine()->getManager()->flush();
return $this->redirect($this->get(CrudUrlGenerator::class)->build()->setAction(Action::INDEX)->generateUrl());
}
我在文档中找到了解决方案,我不知道我是怎么错过的
public 函数 configureActions(Actions $actions): Actions {
$accept_Deal = Action::new('accept','accept')
->linkToCrudAction('acceptAction')
->displayIf(static function ($entity) {
return $entity->getStatus() == 0 ;
});
return $actions
->add(Crud::PAGE_INDEX, $accept_Deal)
->disable( Action::NEW, Action::EDIT)
->add(Crud::PAGE_INDEX, Action::DETAIL)
->reorder(Crud::PAGE_INDEX, [Action::DETAIL, Action::DELETE]);
}