symfony - EasyaAmin 3 - 根据底层实体动态隐藏/显示操作
问题描述
有没有办法根据基础实体显示/隐藏操作?例如,当且仅当它没有任何子帖子时,我才需要显示 Category 实体的删除操作。
我试图从我的 CRUD 控制器中的方法中删除它,但是在调用该方法时configureActions
我无法访问该对象。AdminContext
我怎样才能做到这一点?
解决方案
在 EasyAdmin 的代码库中跟踪后,我找到了这个解决方案:
考虑我有一个与帖子有关的Category
实体。如果该类别没有任何帖子,OneToMany
我需要显示每个类别的操作。delete
public function configureActions(Actions $actions): Actions
{
$action = parent::configureActions($actions)->getAsDto(Crud::PAGE_INDEX)->getAction(Crud::PAGE_INDEX, Action::DELETE);
if (!\is_null($action)) {
$action->setDisplayCallable(function (Category $category) {
return $category->getPosts()->count() === 0;
});
}
return $actions;
}
推荐阅读
- axon - 如何查看 Axon 数据库中有哪些字段可用?
- git - 当我使用 git stash 时,我最终得到 <<<<<<< 更新了上游和文件中的其他内容
- c++ - 创建容器的模板类
- eloquent - whereRaw 查询范围内的变量丢失值
- youtube-api - 正在设置 Youtube API 凭据 - 错误:deleted_client OAuth 客户端已被删除
- django - 使用多对多关系更改 Django 模型的主键
- optimization - 从 N 组中找到 k 组值的算法,使得 k 组中唯一值的数量最大化
- vue.js - Vue.js - 努力让 DatePicker 工作的组件
- asp.net - AngularJs如何从ASP.MVC5下载文件传递参数
- javascript - 如何使用 SASS 动态切换颜色主题?