ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 控制器 > 控制器只接收参数并返回,不处理任何业务逻辑。 ### Api 控制器 **目录**: apps **命名空间**:Apps ***** ### Adm 控制器 **目录**: apps_adm **命名空间**:Adm ***** ### 控制器模块 控制器需根据模块定义不同的文件夹,且需要在配置文件预先配置到白名单。 位置: conf/cfg_xxxxx.php ``` $aclmod = ['default', 'index', 'shop', 'order', 'pay', 'goods', 'course', 'props', 'power', 'misc', 'activity', 'card', 'teacher', 'task', 'courseware']; ``` ### Api 控制器定义 ``` php <?php /** * 默认控制器 */ namespace Apps\Index; class Index extends Common { /** * orderLib constructor. */ public function __construct() { } public function index() { return self::showMsg("Not Found", 404); } } ``` ### Adm 控制器定义 ``` php <?php namespace Adm\Shop; use Adm\WithController; /** * 优惠券 * * Class Coupon * @package Adm\Shop */ class Coupon extends Common { // 继承后台控制器基础方法 use WithController; // 配置对应的数据操作层 public $repositoryClassName = '\Mod\Order\Repositorys\CouponRepository'; /** * 定义结构字段 * * @var array */ public $fields = [ 'id' => 'integer|ID', // ID 'title' => 'string|优惠券标题或者说明|required', // 优惠券标题或者说明 'gids' => 'string|可用商品|required', // 可用商品 'cid' => 'integer|学科分类|required', // 学科分类 'type' => 'integer|类型|required', // 类型:1满减 2折扣 'full_price' => 'integer|满多少金额可用|required', // 满多少金额可用,0为不限制金额 'cut_price' => 'integer|减的金额|required', // 减的金额(type=1时是减的额度,type=2时是最多减多少) 'discount' => 'integer|折扣|required', // 折扣,0则不打折 'cateids' => 'string|商品分类', // 商品分类ID集合 'sum' => 'integer|库存数量', // 库存数量 'get_num' => 'integer|已领数量', // 已领数量 'url' => 'string|去使用链接', // 去使用链接 'limit_sum' => 'integer|限领数量', // 限领数量 'repeateday' => 'string|重复截止日期', // 重复截止日期 'sort' => 'integer|排序', // 排序 'intro' => 'string|介绍说明', // 介绍说明 'state' => 'integer|状态', // 状态:0下线 1上线 2隐藏 'sday' => 'string|开始日期', // 开始日期 'eday' => 'string|截止日期', // 截止日期 ]; } ``` > 后台控制器逻辑大多都是通用的,所以引入 `WithController` 配置数据源 和 字段规则 就可以了实现标准的增删改查,如果默认的不满足,直接重写即可。