前面的博客讲了fastadmin在创建页面后前端是如何布局和获取数据的(FastAdmin使用——前端篇),看一下后台如何操作数据的,后台的controller层来操作数据,所有的controller都会自动继承基类backend,我们看一下上次形成的例子的文件
<?php
namespace app\admin\controller\student;
use app\common\controller\Backend;
/**
*
*
* @icon fa fa-circle-o
*/
class Student extends Backend
{
/**
* Student模型对象
* @var \app\admin\model\Student
*/
protected $model = null;
public function _initialize()
{
parent::_initialize();
$this->model = model('Student');
$this->view->assign("studentSexList", $this->model->getStudentSexList());
}
/**
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
* 需要将application/admin/library/traits/中对应的方法复制到当前控制器,然后进行修改
*/
}
这是自动生成的代码,可以看到除了初始化_initialize()函数并没有其他函数,注释里也解释了直接使用了基类的五个基础方法,下面我们分析一下基类的五个基础函数。
/**
* 查看
*/
public function index()
{
//设置过滤方法
$this->request->filter(['strip_tags']);
if ($this->request->isAjax()) {
//如果发送的来源是Selectpage,则转发到Selectpage
if ($this->request->request('keyField')) {
return $this->selectpage();
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$total = $this->model
->where($where)
->order($sort, $order)
->count();
$list = $this->model
->where($where)
->order($sort, $order)
->limit($offset, $limit)
->select();
$list = collection($list)->toArray();
$result = array("total" => $total, "rows" => $list);
return json($result);
}
return $this->view->fetch();
}
点击页面传送ajax请求,第一个if判断选择页面,返回selectpage()方法,list()构造参数,$where处理前端的查询请求,在前端篇讲过查询。$sort是js设定数据库的主键,$order设置排序的方式也由js初始化参数定义获取,$offset是选择页数后,覆盖的数据,$limit是页面选择的数据显示条数,这些数据都可以在页面的f12下查看到。
$total构造数据的条数,$list是具体的数据,而我们在查询数据时可以在这里修改,用的语法都是tp5的函数,index方法是我们经常用的所以详细分析,而剩余的删改查代码可以根据自己的业务需要编写,不推荐大家使用默认方法,如果不需要自己改写就使用默认的方法,edit和del方法在前端添加按钮后使用$ids=""传参,可以根据基类里的函数改写。
后台的使用和tp5没有太大区别,fastadmin很多方法是封装好的所以想要自己定义一些业务需要时也不太方便,不过fastadmin在使用起来确实速度很快,在开发中小型网站时很好用。