后台CURD快速开发

浏览:2714 发布日期:2018/09/17 分类:功能实现 关键字: 快速CURD
适用于ThinkPHP5(简单、快速的构建CURD)
thinkphp5-fast-curd
项目介绍
适用于ThinkPHP5(简单、快速的构建CURD)

通过以下代码简单的常规CURD就完成了,接下来就可以去处理前端表单或列表了<?php
...
// 类放置位置
use app\traits\Resources;
use app\models\ArticleModel;

class Article extends Controller
{
    use Resources;
    
    public function __construct(Request $request = null)
    {
        parent::__construct($request);
        $this->db = new ArticleModel();
    }
}
源代码<?php

namespace app\traits;

/**
 * @author      renjianfei
 * @datetime    2018/09/13
 */
trait Resources
{
    private $db = null;

    private $pk = 'id';

    private $softDeleteKey = 'visible';
    /**
     * 排序方式
     */
    protected function sort($sort = '')
    {
        return empty($sort) ? $this->pk .' desc' : $sort;
    }

    /**
     * 列表筛选
     */
    protected function filter()
    {
        return array_filter(input());
    }

    /**
     * @param $list 列表数据
     */
    protected function afterIndex($list = [])
    {
        // TODO xxxx
    }

    /**
     * 显示资源列表
     */
    public function index()
    {
        $list = $this->db->order($this->sort())->where($this->filter())->paginate();
        $this->afterIndex($list);
        return view('',[
            'list' => $list,
        ]);
    }

    /**
     * 显示创建资源表单前
     */
    public function beforeCreate()
    {
        
    }

    /**
     * 显示创建资源表单
     */
    public function create()
    {
        $this->beforeCreate();
        return view();
    }

    /**
     * 保存新建的资源前置操作
     */
    protected function beforeSave()
    {

    }

    /**
     * 保存新建的资源
     */
    public function save()
    {
        $this->beforeSave();
        $res = $this->db->allowField(true)->save(array_filter(input())) ? $this->success('操作成功') : $this->error('保存失败');
    }

    /**
     * 显示指定的资源
     */
    public function read($id)
    {
        $info = $this->db->findOrFail($id);
        return view('',[
            'info' => $info
        ]);
    }

    /**
     * 显示指定资源表单
     */
    public function edit($id)
    {
        $info = $this->db->findOrFail($id);
        return view('edit',[
            'info' => $info
        ]);
    }

    /**
     * 更新资源前
     */
    public function beforeUpdate()
    {
        
    }

    /**
     * 保存更新的资源
     */
    public function update($id)
    {
        $this->beforeUpdate();
        $this->db->allowField(true)->save(input(),[$this->pk => $id]) ? $this->success('保存成功',url('index')) : $this->error('保存失败');
    }

    /**
     * 软删除指定的资源
     */
    public function delete($id)
    {
        $this->db->update([
            $this->softDeleteKey = 0
        ],[
            'id' => $id
        ]);
    }

    /**
     * 真实删除某行记录
     */
    public function destroy($id)
    {
        $this->db->where('id', $id)->delete() ? $this->success('删除成功') : $this->error('删除失败');
    }
}
以后也许会更新, 也有可能会弄一套UI, 表格+表单方便快速开发
更新地址地址https://gitee.com/flyper/thinkphp5-fast-curd
评论( 相关
后面还有条评论,点击查看>>