ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[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属性