php自动生成curd,ThinkPHP5 快速curd
thinkphp5-fast-curd
項目介紹
適用于ThinkPHP5(簡單、快速的構建CURD)
通過以下代碼簡單的常規CURD就完成了,接下來就可以去處理前端表單或列表了
...
// 類放置位置
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();
}
}
大部分需求可以使用控制器前置操作或者模型事件 加上模型關聯處理
如不能滿足需求可在控制器內重寫Resources內方法
PHP方法優先級
自身方法 > trait > 父類
class BaseController
{
public function index()
{
return 'base';
}
}
class ArticleController extends BaseController
{
use Test;
public function index()
{
return 'article';
}
}
trait Test
{
public function index()
{
return 'trait';
}
public function create()
{
return 'create';
}
}
實現代碼
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('刪除失敗');
}
}
總結
以上是生活随笔為你收集整理的php自动生成curd,ThinkPHP5 快速curd的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keras 搭建图片分类 CNN (卷积
- 下一篇: 上海初中计算机课程大纲,《上海市普通中小