## 基类控制器
~~~
app/common/controller/Api.php //API接口基类控制器
app/common/controller/Backend.php //后台基类控制器
app/common/controller/Frontend.php //前台基类控制器
app/common/controller/AddonsFrontend .php //插件前台基类控制器
app/common/controller/AddonsBackend.php //插件后台基类控制器
~~~
## traits Curd 类 这个类 里有增删改查方法 index/add/edit/delete/destroy 等
~~~
app\common\traits\Curd //Curd 基类类控制器
~~~
- 默认前台控制器 统一继承 Frontend .php
- 默认后台控制器 统一继承 Backend.php
- 插件前台控制器 统一继承 AddonsFrontend .php
- 插件后台控制器 统一继承 AddonsBackend.php
- 例如后台控制器
~~~
<?php
/**
FunAdmin 会员管理
* ============================================================================
* 版权所有 2017-2028 FunAdmin,并保留所有权利。
* 网站地址: http://www.FunAdmin.com
* ----------------------------------------------------------------------------
* 采用最新Thinkphp6实现
* ============================================================================
* Author: yuege
* Date: 2020/8/2
*/
namespace app\backend\controller\member;
use app\common\controller\Backend;
use think\facade\Request;
use think\facade\View;
use app\backend\model\Member as MemberModel;
use think\App;
class Member extends Backend
{
/**
* 关联搜索
* @var bool
*/
protected $relationSearch = true;
public function __construct(App $app)
{
parent::__construct($app);
$this->modelClass = new MemberModel();
}
/**
* 默认的控制器所继承的父类中有index/add/edit/delete/destroy 等方法
* 因此在当前控制器中可不用编写增删改查的代码,如果需要自己在这里增加或者修改这里的逻辑
*/
}
~~~
## 属性和方法
- 当我们的控制器继承自以上基类控制器以后,我们就可以使用以下常用属性
~~~
/**
* @var
* 模型
*/
protected $modelClass;
/**
* @var
* 页面大小
*/
protected $pageSize;
/**
* @var
* 页数
*/
protected $page;
/**
* 模板布局,
* @var string|bool
*/
protected $layout = 'layout/main';
/**
* 快速搜索时执行查找的字段
*/
protected $searchFields = 'id';
protected $allowModifyFileds = [
'status',
'sort',
'title',
'auth_verify',
];
/**
* 是否是关联查询
*/
protected $relationSearch = false;
~~~
## 关联查询 在控制器设置 $relationSearch 即可
~~~
protected $relationSearch = true;
~~~
我们需要修改控制器的`index`方法,代码如下:
~~~
public function index()
{
if ($this->request->isAjax()) {
list($this->page, $this->pageSize, $sort, $where) = $this->buildParames('',true);
$count = $this->modelClass
->withJoin(['memberGroup','memberLevel'])
->where($where)
->count();
$list = $this->modelClass
->withJoin(['memberGroup','memberLevel'])
->where($where)
->order($sort)
->page($this->page, $this->pageSize)
->select();
$result = ['code' => 0, 'msg' => lang('Delete Data Success'), 'data' => $list, 'count' => $count];
return json($result);
}
return view();
}
~~~
## 后台增加一个控制器
- 需要添加一个模型
- 添加一个视图页面
- 在后台对应静态文件目录添加一个 控制器名.js (注意js文件名必须小写)修改里面的地址即可
- 介绍
- 系统架构
- 安装
- 多语言
- 数据库
- 控制器
- 开发示例
- 前端
- js 模板
- js cols字段解析
- 权限验证
- table事件
- 常用组件
- input表单
- xmselect表单
- textarea表单
- upload表单
- editor表单
- select表单
- radio表单
- switch表单
- checkbox表单
- arrays表单
- icon表单
- date表单
- city表单
- region表单
- tags表单
- color表单
- submit按钮
- close按钮
- Api接口
- 插件基础
- 目录结构
- 插件市场
- 插件管理
- 插件开发
- 模块
- 插件文件
- 插件配置
- 插件基础信息
- 内置函数
- 插件数据库
- 全局js 文件
- Curd命令行
- CURD命令
- Menu命令
- 表格规范
- CMS管理--待更新
- CMS目录结构
- 内置标签
- fun标签
- 万能标签
- 分类标签
- 导航标签
- 广告标签
- tag标签
- 友情链接
- 碎片标签
- 常见问题