BaseController 是 XinAdmin 框架中所有业务控制器的基类,它继承自 Laravel 的 Controller 并提供了仓储类定义、权限验证白名单、默认控制器方法等核心功能。
每个控制器都需要定义其对应的仓储类,通过实现 repository() 方法来指定具体的 Repository 实例。这是一个抽象方法,必须由子类实现:
例如:
如果你不使用 repository 可以通过继承 Laravel 的 Controller 来避免定义 repository
通过 $noPermission 数组可以配置无需权限验证的方法,这些方法对所有用户开放:
BaseController 提供了标准的 CRUD 操作方法:
find(int $id) - 查询单个记录query(Request $request) - 查询列表(支持分页)create(Request $request) - 创建记录update(Request $request, int $id) - 更新记录delete(int $id) - 删除记录这些方法依赖于 Repository 模式来执行实际的数据操作。
如果需要在默认方法基础上添加额外逻辑,可以在子类中重写对应方法并调用父类方法:
如果需要完全自定义某个方法的行为,可以直接重写而不调用父类方法:
除了标准的 CRUD 方法外,还可以添加自定义业务方法: