基于swoft 2.x 和 xadmin 开发的快速后台框架。
版本 | 更新内容 |
---|---|
v0.0.1 | |
v0.0.2 | 删除一个特别智障的问题 |
v0.0.3 | 修复一些特别蛋疼的问题 |
v0.1.0 | 修复一些无聊的问题,使用官方session组件 |
./config/dev(pro)/bese.php
中关于数据库的配置 php bin/swoft install:exec
,如果数据库中出现表说明安装成功 swoftcli run -c ws:start
或者
php bin/swoft ws:start
应用配置位于 ./config/{ENV}/base.php
切换环境配置只需要将./app/base.php
文件中的配置修改为:
//应用级配置
'config' => [
'path' => __DIR__ . '/../config',
'env' =>'pro' //pro为生产环境配置,dev为开发环境配置
],
支持分组路由,如 http://DOMAIN/admin/auth.group/lists
,对应目录: Http/Controller/Admin/Auth/AdminController
内置快速curd操作,可以方便快捷的搭建出常用的curd功能。支持:
IndexController.php
路由地址必须是 /admin/index
;__foo
格式重写,返回指定的格式;http://DOMAIN/admin/{Controller}/{lists/add/edit/del}/{?id=}
Controller
为你的控制器名称,路由将自动寻找
controller/{lists/add/edit/del}
模板文件 如:http://DOMAIN/admin/index/lists
,路由器会寻找/resource/views/index/lists.html
模板文件,否则将会抛出异常到控制台。
在需要使用快速curd模板的控制器中引入Trait(trait引入方式见php document)即可
use \App\Http\Traits\HttpBaseTrait;
protected $model ={Entity}::class;
Entity
:你需要关联的实体名称:如
protected $model =Admin::class;
http://DOMAIN/admin/{Controller}/lists
lists 分页模板会查找你绑定的实体内容并将内容分页输出。 lists将会输出以下变量:
$list
: 格式化后的分页数据$keywords
: 查询的条件名称$page
; html分页样式(前端模板使用原生方式输出 {:$page}
)<div class="layui-input-inline">
<input type="text" name="params[like][value]" lay-verify="title" autocomplete="off" placeholder="请输入关键词" class="layui-input layui-btn-sm" value="<?php echo($data['keywords']['like']['value']); ?>">
<input name="params[like][fields]" value="{field1}|{field2}" type="hidden">
<input type="submit" >
</div>
params[like][value]
和params[like][fields]
为固定模板查询name值{field1}|{field2}
替换成你需要查询的数据库的表字段(必须与表字段对应),使用管道符"|" 分割。 <input type="input" name="params[{fields}]" value="{your values}">
name="params[{fields}]"
fields替换成你需要查询的字段名称; value="{your values}"
your values为你需要搜索的值用于重写查询条件,返回条件数组
__listsKeywords(array $params, array $map):array
array $param
通过\context()->getRequest()->input();
获取的请求参数。array $map
组装好的符合swoft的ORM查询条件数组用于定制特殊查询语句,返回查询结果
__listsData(array $map,array $params):array
array $map
符合swoft的ORM查询条件数组
array $params
通过\context()->getRequest()->input()
获取的参数
返回查询的结果的数组
用于自行渲染页面,返回标准响应结果
__listsDisplay(array $buildData):Response
array $buildData
包含array $list
查询结果,array $keywords
请求参数数组,string $page
分页html样式Swoft\Http\Message\Response
对象http://DOMAIN/admin/{Controller}/{add/edit}{/?id=}
http://DOMAIN/admin/{Controller}/add
info.html
。__addDisplay():Response
Swoft\Http\Message\Response
对象__addUpdateBefore(array $requestParams):bool
boolean
值用于判断是否执行成功http://DOMAIN/admin/{Controller}/edit/?id={index_id}
info.html
。__editUpdateBefore(array $requestParams):bool
boolean
值用于判断是否执行成功__editDisplay(array $info):Response
array $info
主键查询结果数组。Swoft\Http\Message\Response
对象http://DOMAIN/admin/{Controller}/add
添加数据模板name字段必须跟mysql表字段对应。
http://DOMAIN/admin/{Controller}/edit
修改数据必须提交带有主键ID的值
__{add/edit}Before(array $request):array
array $request
提交的参数值array
类型参数__{add/edit}After(Mix $result):Response
mix $result
数据库提交、更新结果Swoft\Http\Message\Response
对象http://DOMAIN/admin/{Controller}/del{/?id=}
__delBefore(array $map):$map
array $map
符合swoft ORM条件的数组__delAfter(Mix $result):Response
mix $result
数据库提交、更新结果Swoft\Http\Message\Response
对象添加导出按钮
<button class="layui-btn layui-btn-normal" onclick="outputExcel('{:getOutputUri()}')">
<i class="layui-icon"></i> 导出到excel
</button>
在需要导出的类中添加配置
protected $output=[
["字段名称","excel标题名称",{['为true字段','为false字段']}],
];
protected $output=[
["admin_id","id"],
["admin_username","用户名"],
["created_at","创建时间"],
["admin_bs","状态",['启用','禁用']],
["admin_nickname","昵称"],
["group_name","所属组"],
];
Swoft is an open-source software licensed under the LICENSE
power by ethan[touch_789@163.com] LICENSE