博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
laravel 根据字段不同值做不同查询
阅读量:5149 次
发布时间:2019-06-13

本文共 1986 字,大约阅读时间需要 6 分钟。

在开发过程中我们经常遇到这种情况:

例如,一个信息表message,字段type 1.操作提醒 2.平台通知,表message_read记录当信息是平台通知时用户浏览状况

  那么 当信息是平台通知时是针对的所有用户,我们想根据他是否浏览状态去在消息提醒里去显示他未读的消息

语句如下(laravel)

public function index()    {//        监听sql语句//        DB::listen(function($query) {//            $bindings = $query->bindings;//            $sql = $query->sql;//            foreach ($bindings as $replace){//                $value = is_numeric($replace) ? $replace : "'".$replace."'";//                $sql = preg_replace('/\?/', $value, $sql, 1);//            }//            dd($sql);//        });            $uid = 13;             return MessageModel::where(function($query) use($uid){                $query->where(['type'=>2,'status'=>1,])->whereNotIn('id',function($query) use($uid){                    $query->select('mid')->from('message_read')->where([['message.id','=',DB::raw('mid')],'uid'=>$uid]);                });            })->orwhere(function($query) use($uid){                $query->where(['type'=>1,'status'=>1,'is_read'=>2,'uid'=>$uid]);            })->get();    }

数据表格式

CREATE TABLE `message` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `uid` int(11) DEFAULT NULL COMMENT '需要通知的用户id',  `title` varchar(255) NOT NULL COMMENT '标题',  `describe` varchar(255) DEFAULT NULL COMMENT '简介',  `type` tinyint(4) DEFAULT NULL COMMENT '通知类型 1.行为通知 2.平台通知',  `is_read` tinyint(4) DEFAULT NULL COMMENT '是否已读 1.已读 2.未读',  `status` tinyint(4) DEFAULT '1' COMMENT '1存在 2删除',  `created_at` int(11) DEFAULT NULL,  `updated_at` int(11) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COMMENT='消息表'; CREATE TABLE `message_read` (  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,  `uid` int(11) DEFAULT NULL COMMENT '用户id',  `mid` int(11) DEFAULT NULL COMMENT '消息id',  `created_at` int(11) DEFAULT NULL,  `updated_at` int(11) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='平台消息通知阅读记录表';

 

转载于:https://www.cnblogs.com/houss/p/11470375.html

你可能感兴趣的文章
Openscada远程配置
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
XML 解析---dom解析和sax解析
查看>>
Gamescom2014:中国游戏公司37.com进军西方海外市场
查看>>
编程异常——假设你报createSQLQuery is not valid without active transaction,...
查看>>
ios新开发语言swift 新手教程
查看>>
有引用外部jar包时(J2SE)生成jar文件
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
什么是 开发环境、测试环境、生产环境、UAT环境、仿真环境
查看>>
科研需要兴趣和自信
查看>>
iOS Development
查看>>
mysql
查看>>
1分钟搞定Android开发智能提示问题xml文件一并搞定
查看>>
4分钟学会网页样式
查看>>
Java核心技术点之注解
查看>>
【PHP】array_column函数
查看>>
LayUI--表格 + 分页
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
循环引用 。 @class
查看>>