easyadmin官网地址
thinkphp6完全开发文档
PHP >= 7.1.0
Mysql >= 5.7.0 (需支持innodb引擎)
Apache 或 Nginx
通过伪静态配置, 将URL重写隐藏应用的入口文件index.php, 不配置的话, 会存在访问路径不正确的问题。
后台页面
每一个html页面都要有对应的模型,控制器,和js文件
模型命名 对应数据表名
控制器命名 对应html文件
Js 对应html文件夹
控制器
控制器中需要先实例化模型
$this->model = new TestInfo();
后续对数据表进行操作都需要用到
拼表查询
//如需拼表
//需要在主表中加入拼表方法
//例如:
//在TestInfo模型中加入
public function info()
{
return $this->belongsTo('app\admin\model\TestPhone', 'id', 'pid');
}
//即可在控制器中进行拼表查询
$list = $this->mode
->withJoin('info', 'LEFT')
->select()
$data = [
'code' => 0,
'msg' => '',
'data' => $list,
];
return json($data);
js文件中这样写
{field: 'info.name', width: 100, title: 'name'}
withjoin 用来拼一张表
两张或两张以上的表使用with语法
模型文件中这样写:
public function info()
{
return $this->belongsTo('app\admin\model\ScienceMenu', 'menuid', 'id');
}
public function science()
{
return $this->belongsTo('app\admin\model\ScienceInfo', 'scienceid', 'id');
}
public function sort()
{
return $this->belongsTo('app\admin\model\ScienceSorts', 'sorts', 'id');
}
控制器中这样写:
$count = $this->model
->where($where)
->with('info','science','sort')
->count();
$list = $this->model
->where($where)
->with('info','science','sort')
->page($page, $limit)
->order($this->sort)
->select();
foreach($list as $k=>$v){
$list[$k]['title'] = $v['info']['title'];
$list[$k]['name'] = $v['science']['name'];
$list[$k]['sname'] = $v['sort']['name'];
}
这样即可完成拼多张表查询数据
每个控制器的增删改查都可以继承到
app\admin\traits\Curd;
Curd.php文件 包含了主页信息,新增信息,编辑信息,查询信息,删除信息,导出文件,属性修改
使用时只需要在控制器中带上模型名即可
如需拼表,可直接在原控制器中写入index方法
属性修改可修改的字段在
easyadmin\app\common\controller\AdminController.php
文件中修改
然后在js文件中的字段类型写入 edit:text即可实现属性修改
一般情况下,业务数据不建议真实删除数据,系统提供了软删除机制(模型中使用软删除更为方便)。
每个新建的数据表中需要加上
create_time,update_time,delete_time三个字段 分别是创建时间,更新时间,删除时间
使用软删除
当删除数据时,数据并不会被真的删除,而是更新了删除时间字段
读表时
系统只会读取表中删除时间字段为空的数据
目前这个框架还存在一些小问题
使用with拼表查询时,所查字段无法进行搜索
已经在github上向作者提出issue,等待修复