【发布时间】:2018-05-30 19:23:38
【问题描述】:
我目前正在使用 Laravel 开发一个私人消息系统。
我正在尝试在用户的收件箱中显示消息线程列表。这类似于即时消息系统显示消息的方式,即两个用户之间的所有消息都存储在一个线程中。
我遇到的问题是我有多种消息类型:“消息”和“任务”。在“消息”收件箱中,我只想显示线程类型为“消息”的消息线程。为此,我在控制器中使用以下代码:
$messageThreads = Thread::where('type', 'Message')
->where('sender_id', $user)
->orWhere('recipient_id', $user)
->get()
->sortByDesc('updated_at');
但这不起作用,并且仍在检索类型为“任务”而不是仅限于“消息”的消息线程
我也试过了:
$messageThreads = Thread::where('sender_id', $user)
->orWhere('recipient_id', $user)
->where('type', 'Message')
->get()
->sortByDesc('updated_at');
但这也返回了相同的结果。
有趣的是,如果我将其保留为
$messageThreads = Thread::where('type', 'Message')
它只会检索“消息”类型的消息。只有当我添加其他“where”子句时,它才会停止正常工作。
【问题讨论】:
标签: laravel laravel-5 eloquent