php - Laravel 查询为相同的问题发送不同的结果
问题描述
嗨,我正在尝试在 LARAVEL 上创建一对一的消息传递系统。它工作得很好,直到对于某些用户它开始显示与预期不同的结果。它只发生在某些用户身上。这个查询有什么问题
$id =$receiver->id;
$messages = Message::where(function ($query) use ($id) {
$query->where('user_id', '=', Auth::user()->id)
->where('receiver_id', '=', $id);
})->orWhere(function ($query) use ($id) {
$query->where('user_id', '=', $id)
->where('receiver_id', '=', Auth::user()->id);
})->get();
在我返回 $messages 后,结果是这样的......
工作结果:消息按顺序发送..
在视图中它显示如下。.
相同的查询错误结果
在视图中,您可以看到日期未按顺序排列
如果您能提供帮助,我真的无法弄清楚出了什么问题,我将不胜感激..
解决方案
您的日期使用 ISO-8601 格式转换为 UTC,但我认为日期与您的问题无关,如果您不使用时间戳订购。
我建议您使用orderBy
with id
,它可以轻松解决您的问题:
$messages = Message::where(function ($query) use ($id) {
$query->where('user_id', '=', Auth::user()->id)
->where('receiver_id', '=', $id);
})->orWhere(function ($query) use ($id) {
$query->where('user_id', '=', $id)
->where('receiver_id', '=', Auth::user()->id);
})
->orderBy('id', 'ASC')
->get();
推荐阅读
- node.js - SendGrid 电子邮件传递状态 API
- bash - 将 Bash while 循环移植到 Python 2
- django - KeyError:在 Django 中运行 inspectdb 时出现“force_color”错误
- flutter - 使用基于 Web 的 Flutter 应用进行身份验证
- sql - Django - 查询:如何使用其字符串值“即时”解码整数字段值
- sql - 动态 SQL 中的日期时间
- javascript - 本地存储示例无法正常工作
- c - while循环代码不起作用(继续='y')
- arrays - 读取数组的第一个索引以检查布尔值
- mongodb - 如何为 React-Redux 中的动态字段赋予 iD?