[TOC]
## getPrimarykey(string $tableName = '') 获取指定表名的主键
首先查找module表中指定表名的pk字段存储的主键名,不存在则是id
## **getAddColumns(string $tableName = '', array $info = [])**: 获取添加页面可展示的字段信息
```
返回的数组下标对应的值和创建表单的方法参数一致
0 字段类型
1 mysql字段名(如id、name)
2 字段别名
3 提示信息
4 该字段的值(如id的值)
...
具体的参数参考创建表单的方法add_字段类型(参数1,参数2,...)
getAddColumns查出来的值适合addFormItems
例如:
Array(
[0] => text (addFormItems调用addFormItem时其中的array_shift会删出开头的此值并且下标从0开始重新排序,然后再将新的数组传入addtext等方法)
[1] => employee_name
[2] => 姓名
[3] => 业务员姓名
[4] => dash
[5] => Array()
[6] =>
[7] =>
[8] =>
[9] =>
)
//对应如下:
/**
* 添加单行文本框
* @param string $name ①字段名称
* @param string $title ②字段别名
* @param string $tips ③提示信息
* @param string $default ④默认值
* @param array $group ⑤标签组,可以在文本框前后添加按钮或者文字
* @param string $extra_attr ⑥额外属性
* @param string $extra_class ⑦额外css类名
* @param string $placeholder ⑧占位符
* @param bool $required ⑨是否必填
* @return $this|array
*/
public function addText($name = '', $title = '', $tips = '', $default = '', $group = [], $extra_attr = '', $extra_class = '', $placeholder = '', $required = false)
```
返回的数组格式
```
添加和修改页次方法返回的格式
array (
0 => array (
0 => 'text',
1 => 'create_people',
2 => '创建人',
3 => '默认为登录操作人员',
4 => '',
5 =>
array (
),
6 => '',
7 => '',
8 => '',
9 => false,
),
1 => array (
0 => 'date',
1 => 'accounts_expenditure_time',
2 => '出帐时间',
3 => '出帐时间',
4 => '0',
5 => 'Y-m-d',
6 => '',
7 => '',
8 => '',
9 => false,
),
2 => array (
0 => 'textarea',
1 => 'remarks',
2 => '备注',
3 => '备注',
4 => '',
5 => '',
6 => '',
7 => '',
8 => false,
),
3 => array (
0 => 'select',
1 => 'filiale',
2 => '公司',
3 => '业务招待费分公司',
4 =>
array (
1 => '山东分公司',
0 => '北京分公司',
),
5 => '0',
6 => '',
7 => '',
8 => '',
9 => false,
),
)
```
## **getListColumns(string $tableName = '')** 获取列表页面可展示的字段信息
getFields方法查出Field表的字段,首先排除列表不展示的(字段管理-字段展示-列表进行勾选)和状态(字段管理-状态管理-显示/隐藏 进行勾选)为0的字段,然后再组装
当Field表data_source字段的值为1即字典列表时 查出dictionary表的dict_type为Field表的dict_code的数据
返回的数组格式: [$field['field'], $field['name'], $field['type'], $default, $param, $class, $sortable];
字段名、字段名描述、字段类型、默认值、额外参数(如字典列表的值)、额外类、是否排序
```
array (
0 => array (
0 => 'id',//字段名
1 => '编号',//字段名描述
2 => 'hidden',//字段类型
3 => '0',//默认值
4 =>
array (
),//额外参数
5 => '',//额外类
6 => 'false',//是否排序
),
1 => array (
0 => 'employee_name',
1 => '姓名',
2 => 'text',
3 => '',
4 =>
array (
),
5 => '',
6 => 'true',
),
)
```
示例:
~~~
return TableBuilder::getInstance()
->addColumns([ // 批量添加列
['id', 'ID'],
['type_name', '会员组'],
['mobile', '电话'],
['create_time', '创建时间'],
['update_time', '修改时间'],
['status', '状态', 'yesno'],
])
->fetch();
~~~
## **getListSearch(string $tableName = '')** 获取列表需要的搜索字段
返回的数组格式
```
array(
0=>array(
0=>'text',// 字段类型
1=>'employee_name',// 字段名称
2=>'姓名',// 字段别名
3=>'=',// 匹配方式
4=>'',// 默认值
5=>array(),// 额外参数
6=>0,// 数据源 [0 字段本身, 1 系统字典, 2 模型数据]
7=>'',// 模型关联
8=>'',// 关联字段
9=>532,// 字段编号(在field表中的id)
),
1=>array(0=>'date',
1=>'accounts_expenditure_time',
2=>'出帐时间',
3=>'=',
4=>'',
5=>array(),
6=>0,
7=>'',
8=>'',
9=>548,
),
2=>array(0=>'select',
1=>'filiale',
2=>'公司',
3=>'=',
4=>'',
5=>array(
1=>'山东分公司',
0=>'北京分公司',
),
6=>1,
7=>'',
8=>'',
9=>550,
),
)
```
## **getFields(string $tableName = '')** 获取表的所有字段信息
根据表名称查询出当前模块在module表的id,根据module的ID获取Field表的所有字段
MakeBuilder::getFields($this->tabeName)
```
array (
0 => array (
'id' => 526,
'module_id' => 40,
'field' => 'id',
'name' => '编号',
'tips' => '',
'required' => 0,
'minlength' => 0,
'maxlength' => 0,
'type' => 'hidden',
'data_source' => 0,
'relation_model' => '',
'relation_field' => '',
'dict_code' => '',
'is_add' => 0,
'is_edit' => 0,
'is_list' => 1,
'is_search' => 0,
'is_sort' => 0,
'search_type' => '=',
'status' => 1,
'sort' => 1,
'remark' => '自增ID',
'setup' =>
array (
'default' => '0',
'extra_attr' => '',
'extra_class' => '',
'fieldtype' => 'int',
),
'group_id' => 16,
'is_pk' => 1,
),
1 => array (
'id' => 531,
'module_id' => 40,
'field' => 'create_people',
'name' => '创建人',
'tips' => '默认为登录操作人员',
'required' => 0,
'minlength' => 0,
'maxlength' => 0,
'type' => 'text',
'data_source' => 0,
'relation_model' => '',
'relation_field' => '',
'dict_code' => '',
'is_add' => 1,
'is_edit' => 1,
'is_list' => 0,
'is_search' => 0,
'is_sort' => 0,
'search_type' => 'LIKE',
'status' => 1,
'sort' => 50,
'remark' => '',
'setup' =>
array (
'default' => '',
'extra_attr' => '',
'extra_class' => '',
'placeholder' => '',
'fieldtype' => 'varchar',
'group' => '',
),
'group_id' => 16,
'is_pk' => 0,
),
)
```
## **getListWhere(string $tableName = '')** 获取筛选的条件
getListSearch方法获取设置搜索的字段,然后进行组装
## **getAddUrl(string $tableName = '')** 获取列表的新增地址
模型管理最后一项有个添加参数的input框,专门添加【列表页面顶部按钮组中添加按钮的参数,如 cate\_id,多个用`,`分割】,这个方法就是将这些额外参数组装添加到【增加】按钮的地址上
## **getHideShowAll(string $tableName = '')** 隐藏<显示全部>按钮
## **getFieldOptions(array $field)** 获取选项的列表值(下拉列表select 的option?)
参数格式与**getFields**的一致(字典和关联模型的组装?)
## **checkSingle(string $modelName)** 检测单页模式是否跳转
## **getgetAddGroups(string $modelName, string $tableName, array $columns)** 添加/修改页面获取字段分组,用于FormBuilder
## **changeFormData(array $formData, string $tableName)** 新增、修改保存时改变提交的信息为需要的格式[日期、时间、日期时间]
查询出Field的字段,然后查出form表单传递过来的post值,如果表单传过来的值在Field的字段中没有出现则删除该表单的值
## **changeTableData($tableData, string $modelName)** 列表展示时改变为需要的格式[日期、时间、日期时间]
## **unMakeModule()** 获取不可生成的模块[内置模块][模型名称]
如:'Field', 'Module', 'AuthGroup', 'Admin', 'AuthRule', 'AdminLog', 'Cate'
## **checkModuleTable(string $tableName, string $modelName)** 生成模型时替换模型文件中的table属性
## **makeRule(string $id)** 生成模型时替换模型文件中的table属性
- 空白目录
- php语法结构
- 安装与更新
- 开启调试模式及代码跟踪器
- 架构
- 源码分析
- 应用初始化
- 请求流程
- 中间件源码分析
- 请求处理源码分析
- Request源码分析
- 模板编译流程
- 路由与请求流程
- 容器
- 获取目录位置
- 入口文件
- 多应用模式及URL访问
- 依赖注入与容器
- 容器属性及方法
- Container
- App
- facade
- 中间件(middleware)
- 系统服务
- extend 扩展类库
- 笔记
- 配置
- env配置定义及获取
- 配置文件的配置获取
- 单应用模式-(配置)文件目录结构(默认)
- 多应用模式(配置)文件目录结构(配置文件)
- 配置文件
- 应用配置:app.php
- 缓存配置: cache.php
- 数据库配置:database.php
- 路由和URL配置:route.php
- Cookie配置:cookie.php
- Session配置:session.php
- 命令行配置:console.php
- 多语言配置:lang.php
- 日志配置:log.php
- 页面Trace配置:trace.php
- 磁盘配置: filesystem.php
- 中间件配置:middleware.php
- 视图配置:view.php
- 改成用yaconf配置
- 事件
- 例子:省略事件类的demo
- 例子2:完整事件类
- 例子3:事件订阅,监听多个事件
- 解析
- 路由
- 路由定义
- 路由地址
- 变量规则
- MISS路由
- URL生成
- 闭包支持
- 路由参数
- 路由中间件
- 路由分组
- 资源路由
- 注解路由
- 路由绑定
- 域名路由
- 路由缓存
- 跨域路由
- 控制器
- 控制器定义
- 空控制器、空操作
- 空模块处理
- RESTFul资源控制器
- 控制器中间件
- 请求对象Request(url参数)
- 请求信息
- 获取输入变量($_POST、$_GET等)
- 请求类型的获取与伪装
- HTTP头信息
- 伪静态
- 参数绑定
- 请求缓存
- 响应对象Response
- 响应输出
- 响应参数
- 重定向
- 文件下载
- 错误页面的处理办法
- 应用公共文件common.php
- 模型
- 模型定义及常规属性
- 模型数据获取与模型赋值
- 查询
- 数据集
- 增加
- 修改
- 删除
- 条件
- 查询范围scope
- 获取器
- 修改器
- 搜索器
- 软删除
- 模型事件
- 关联预载入
- 模型关联
- 一对一关联
- 一对多关联
- 多对多关联
- 自动时间戳
- 事务
- 数据库
- 查询构造器
- 查询合集
- 子查询
- 聚合查询
- 时间查询
- 视图查询(比join简单)
- 获取查询参数
- 快捷方法
- 动态查询
- 条件查询
- 打印sql语句
- 增
- 删
- 改
- 查
- 链式操作
- 查询表达式
- 分页查询
- 原生查询
- JSON字段
- 链接数据库配置
- 分布式数据库
- 查询事件
- Db获取器
- 事务操作
- 存储过程
- Db数据集
- 数据库驱动
- 视图
- 模板
- 模板配置
- 模板位置
- 模板渲染
- 模板变量与赋值(assign)
- 模板输出替换
- url生成
- 模板详解
- 内置标签
- 三元运算
- 变量输出
- 函数输出
- Request请求参数
- 模板注释及原样输出
- 模板继承
- 模板布局
- 原生PHP
- 模板引擎
- 视图过滤
- 视图驱动
- 验证
- 验证进阶之最终版
- 错误和日志
- 异常处理
- 日志处理
- 调试
- 调试模式
- Trace调试
- SQL调试
- 变量调试
- 远程调试
- 杂项
- 缓存
- Session
- Cookie
- 多语言
- 上传
- 扩展说明
- N+1查询
- TP类库
- 扩展类库
- 数据库迁移工具
- Workerman
- think助手工具库
- 验证码
- Swoole
- request
- app
- Response
- View
- Validate
- Config
- 命令行
- 助手函数
- 升级指导(功能的添加与删除说明)
- siyucms
- 开始
- 添加页面流程
- 列表页加载流程
- 弹出框
- 基础控制器
- 基础模型
- 快速构建
- 表单form构建
- 表格table构建
- MakeBuilder
- 前端组件
- 日期组件
- layer 弹层组件
- Moment.js 日期处理插件
- siyucms模板布局
- 函数即其变量
- 前端页面
- $.operate.方法
- $.modal.方法:弹出层
- $.common.方法:通用方法
- 被cms重写的表格options
- 自定义模板
- 搜索框
- 自定义form表单
- 获取表单搜索参数并组装为url字符串