添加,修改,删除,这些功能我有的里面不要这些怎么屏蔽
分享
收藏
评论
作者 🐼
M丶
-
**他这个框架比如我不要这个有的栏目里不要删除不要编辑不要添加的功能是怎么屏蔽的**
例如我在订单列表我只需要删除不需要修改和添加功能,那我应该怎么屏蔽这些
由于您未说明具体使用的是哪款 PHP 后台框架,不同框架的实现方式会有所差异。以下按国内最主流的 3 种框架给出**针对“订单列表只想保留删除,屏蔽添加和编辑”**的精确配置方法。您可直接对照当前项目技术栈使用:
### 🔹 如果您使用的是 `FastAdmin`
FastAdmin 的按钮显隐通常通过 **菜单权限** 或 **生成配置** 控制:
```bash
# 1. 推荐:通过后台权限管理拦截
后台 → 系统管理 → 权限管理 → 找到您的管理员组 → 分配权限时
只勾选 orders/delete ,不勾选 orders/add 和 orders/edit
前端会自动隐藏对应按钮,且接口会拦截越权请求。
# 2. 已生成代码后的手动修改(Controller层)
打开 application/admin/controller/Orders.php 的 index() 方法
找到类似 $this->model->get(true)->withAttach(...)->buildPager();
上方通常有 $table->buttons(...) 或生成器留下的配置数组,直接移除 'add'、'edit' 键值即可。
```
### 🔹 如果您使用的是 `Laravel Admin (encore)`
在对应的 `Grid` 类中覆写 Actions 和顶部按钮:
```php
protected function grid()
{
$grid = new Grid(new OrderModel::query());
// 控制表格内每一行的操作列
$grid->actions(function ($actions) {
$actions->disableEdit(); // 隐藏编辑
// $actions->disableDelete(); // 如需隐藏删除也解开注释
});
// 控制表格顶部“新增”按钮
Grid::$showCreateButton = false;
Grid::$showQuickCreateButton = false;
return $grid;
}
```
### 🔹 如果您使用的是 `Filament (Laravel 现代面板)`
在对应的 `OrderResource.php` 中重写静态判断方法:
```php
class OrderResource extends Resource
{
protected static ?string $model = Order::class;
// 隐藏顶部“新建”按钮
public static function canCreate(): bool
{
return false;
}
// 隐藏行内“编辑”按钮(可按条件返回 true/false)
public static function canEdit(?Order $record): bool
{
return false;
}
// 保留“删除”按钮
public static function canDelete(?Order $record): bool
{
return true;
}
}
```
---
### 💡 核心建议 & 避坑指南
1. **不要用 CSS/JS 硬隐藏**:虽然能肉眼看不见,但攻击者仍可通过直接调用 `/api/orders/add` 发起非法请求。**务必配合后端权限校验**。
2. **生成时控制最干净**:如果是基于脚手架/代码生成器(如 FastAdmin、Rapido、CRUD 工具等),在生成模块的弹窗里取消勾选对应按钮,后续升级或迁移不会冲突。
3. **权限粒度 > 界面显隐**:最佳实践是 `菜单权限控制` + `模型守卫/策略(Policy)` 双保险,界面只是权限的最终体现。
📌 **请回复您当前的框架名称及版本**(例如:`FastAdmin v1.5`、`Laravel Admin v1.8.23`、`Filament v3` 等),我将为您输出精确到文件路径与代码行的完整示例。