开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 1 Fork 0

NullFeng/ListBuilder

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
ListBuilder
/
ListViewBuilder.php
ListBuilder
/
ListViewBuilder.php
ListViewBuilder.php 5.59 KB
一键复制 编辑 原始数据 按行查看 历史
NullFeng 提交于 2017年12月25日 18:09 +08:00 . TP自动生成列表
<?php
/**
* Created by PhpStorm.
* User: NullFeng
* Date: 2017年12月25日
* Time: 10:41
*/
namespace app\admin\traits;
use think\Config;
use think\Controller;
use think\Request;
use utils\ListModel;
/**
* Trait ListViewBuilder
* @package app\admin\traits
* 通用列表视图
*/
trait ListViewBuilder
{
/**
* 列表数据模型
*/
protected $list_model;
/**
* 分页信息
*/
protected $page_info = [
'no' => 0, //当前页码
'count' => 0, //总页数
'total' => 0, //总记录数
'size' => 10, //单页显示记录数
];
/**
* 当前查询条件数组
*/
protected $query_condition = [];
/**
* 搜索字段配置
*/
protected $search_config = [];
/**
* 创建列表模型
* @return ListModel
*/
public function createListModel()
{
$this->list_model = new ListModel();
return $this->list_model;
}
/**
* 生成数据
* @return array
*/
public function fetchRows()
{
if (!$this->list_model)
return [];
return $this->list_model->fetchRows();
}
/**
* 获取头部
* @return array
*/
public function fetchHeaders()
{
if (!$this->list_model)
return [];
return $this->list_model->getHeaders();
}
/**
* 添加搜索字段(在获取数据之前调用)
* @param $name 对应数据库里面的字段
* @param $option array(
* 'title'=>'显示标题',
* 'type'=>'搜索类型:text|select|date',
* 'method'=>'搜索方式:equals|contain',
* 'placeholder'=>'类型为text时生效:string'
* 'list'=>'类型为select时生效:array'
* )
* @return $this
*/
public function addSearchField($name, $option)
{
$this->search_config[$name] = $option;
return $this;
}
/**
* 接收表单提交(必须放置于添加搜索字段之后)
*/
public function receivePost()
{
if ($this instanceof Controller && Request::instance()->isPost()) {
$data = input('post.');
$query_fields = isset($data['_query']) ? $data['_query'] : [];//取出要查询的字段
if (!empty($query_fields)) {
$config = $this->search_config;//读取所有字段的查询方式
foreach ($query_fields as $key => $field) {//遍历要查询的字段
if (isset($config[$key])) {//如果要查询的字段在配置里面
if ($field === '_no_select_') {//如果值等于_no_select_则表示选择的是下拉框中的"全部"
$query_fields[$key] = 98765675;
continue;
}
if (strlen($field . '') == 0) {//要查询的值为空串
continue;
}
$config_filed = $config[$key];
switch ($config_filed['method']) {
case 'contain':
$this->query_condition[$key] = array('like', '%' . $field . '%');
break;
case 'equals':
default:
$this->query_condition[$key] = $field;
break;
}
}
}
}
$this->assign('_query_fields', $query_fields);
}
}
/**
* 获取当前查询条件
*/
public function getQueryCondition()
{
return $this->query_condition;
}
/**
* 配置分页
*/
public function configPage($total, $size = 1)
{
if (!empty($total)) {
$this->page_info['count'] = ceil($total / ($size * 1.0));
$this->page_info['no'] = 1;
$data = input('post.');//从提交过来的参数获取当前页码
if (isset($data['_page_no'])) {
$this->page_info['no'] = $data['_page_no'];
}
$this->page_info['total'] = $total;
$this->page_info['size'] = $size;
}
}
/**
* 获取当前页码
* @return mixed
*/
public function getCurrentPageNo()
{
return $this->page_info['no'];
}
/**
* 获取单页显示数量
* @return mixed
*/
public function getPageSize()
{
return $this->page_info['size'];
}
/**
* 渲染通用列表视图(页面需要手动选择list_view变量)
* @param string $tpl
* @return mixed|string
*/
public function fetchListView($tpl = ':common_list')
{
if ($this instanceof Controller) {
$this->assign('_headers', $this->fetchHeaders());
$this->assign('_rows', $this->fetchRows());
$this->assign('_search', $this->search_config);
$this->assign('_page', $this->page_info);
$this->view->engine->layout(false);
$list_view = $this->fetch($tpl);
$this->view->engine->layout(true);
$this->assign('list_view', $list_view);
return $this->fetch();
}
return '只能在控制器中使用!!!';
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/nullfeng/ListBuilder.git
git@gitee.com:nullfeng/ListBuilder.git
nullfeng
ListBuilder
ListBuilder
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /