FastAdmin使用建议

1.规划好数据表 !!!
直接用命令创建后台管理菜单

//生成fa_test表的CRUD
php think crud -t test
//生成fa_test表的CRUD且一键生成菜单
php think crud -t test -u 1
//删除fa_test表生成的CRUD
php think crud -t test -d 1
//生成fa_test表的CRUD且控制器生成在二级目录下
php think crud -t test -c mydir/test
//生成fa_test_log表的CRUD且生成对应的控制器为testlog
php think crud -t test_log -c testlog
//生成fa_test表的CRUD且对应的模型名为testmodel
php think crud -t test -m testmodel
//生成fa_test表的CRUD且生成关联模型category,外链为category_id,关联表主键为id
php think crud -t test -r category -k category_id -p id
//生成fa_test表的CRUD且所有以list或data结尾的字段都生成复选框
php think crud -t test --setcheckboxsuffix=list --setcheckboxsuffix=data
//生成fa_test表的CRUD且所有以image和img结尾的字段都生成图片上传组件
php think crud -t test --imagefield=image --setcheckboxsuffix=img
//关联多个表,参数传递时请按顺序依次传递,支持以下几个参数relation/relationmodel/relationforeignkey/relationprimarykey/relationfields/relationmode
php think crud -t test --relation=category --relation=admin --relationforeignkey=category_id --relationforeignkey=admin_id

说明 :1. 如果配置了数据表前缀 ,则不用指定前缀
2. 如果数据表为 fa_test_log ,在创建的时候需要指定名字,否则为创建在 test / log.php ,处于test 目录下。指定名字 -c testlog
3. 通过命令行生成的文件有 (例如 php think crud -t share_img -c share/img)

application/admin/controller/share/Img.php
application/admin/mode/share/Img.php
application/admin/validate/share/Img.php
application/admin/view/share/Img/add.html
application/admin/view/share/Img/edit.html
application/admin/view/share/Img/index.html
public/assets/js/backend/share/img.js       
创建的目录不存在会自动创建

说一下模型关联。在开始做的时候crud没有添加关联,但是使用的时候部分数据又是需要关联的,这时候我们可以自己来修改。首先要在控制器中 加上 protected $relationSearch = true;
复制下父类的index()方法,在模型查询的时候加入 with方法

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
                ->with(['user','prizes']) 
                ->where($where)
                ->order($sort, $order)
                ->count();

            $list = $this->model
                ->with(['user','prizes'])
                ->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();
    }

然后修改模型类

//模型关联
    public function user()
    {
        return $this->belongsTo('app\admin\model\User','user_id','id', [], 'LEFT')->setEagerlyType(0);
    }
    public function prizes()
    {
        return $this->belongsTo('app\admin\model\Prizes','prizes_id','id', 'prizes', 'LEFT')->setEagerlyType(0);
    }

上面的with关联的两个数据模型,分别对应模型类的两个方法.
$this->belongsTo(‘app\admin\model\Prizes’,‘prizes_id’,‘id’, ‘prizes’, ‘LEFT’)->setEagerlyType(0);
参数分别表示 模型名,关联外键,关联主键,别名(已废弃),join类型
最后在js文件下,修改 参数名就ok了
{field: 'user.username', title: __('User_id')},
field 参数表示需要输出的值,这里表示关联的user表的username字段,__(‘User_id’)表示的多语言,配置在application/admin/lang/zh-cn/share/img.php

生成完目录后需要生成菜单,目录还是比较简单

//一键生成share控制器的权限菜单
php think menu -c share
//一键生成share/img控制器的权限菜单
php think menu -c share/img
//删除share/img控制器生成的菜单
php think menu -c share/img -d 1
//一键全部重新所有控制器的权限菜单
php think menu -c all-controller	 		

官方文档地址(https://doc.fastadmin.net/docs/index.html)

你可能感兴趣的:(FastAdmin)