tp5中,有一个主表多个附表,分页查询兼搜索,怎么组装代码,只能拼接sql么?

yambo 发布于 2018/04/12 20:20
阅读 729
收藏 0

主表:
CREATE TABLE `k_log` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `action` varchar(255) NOT NULL COMMENT '动作格式为:CONTROLLER_ACTION',
  `uid` int(10) unsigned NOT NULL COMMENT '用户id',#关联用户表主键
  `create_time` int(10) unsigned DEFAULT '0' COMMENT '记录时间',
  `ip` int(10) unsigned DEFAULT '0' COMMENT 'ip',
  PRIMARY KEY (`id`)
);
附表:
CREATE TABLE `k_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT '',
  `nickname` varchar(255) DEFAULT ''
  PRIMARY KEY (`id`)
);
附表:
CREATE TABLE `k_lang` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(24) NOT NULL,#这个跟log表的action列关联
  `info` varchar(48) NOT NULL,#中文的说明
  PRIMARY KEY (`id`)
);

k_log表中的action要用到缓存中的一个白名单过滤,要显示用户名,如果lang表有中文说明就显示没有就显示英文,并且分页
搜索:
    按照日志的时间(create_time)选取起始时间
    按照中文的info、英文的action两个列进行模糊查询
实际上是
    如果有起始时间,就设置create_time > `start`
    如果有结束时间就设置create_time <`end`
    如果有关键字了,就设置 action like '%keyword%' or info like '%keyword%'
    加上默认的action过滤就是:action not in ('','')
请问在tp5中怎么组织代码,就是查询那怎么组织查询条件,不想通篇都是拼接字符串,大家是怎么做的,想优雅,虚心请教
 

加载中
返回顶部
顶部