我该如何修改我的代码:
<?php $titles = DB::table('messages')->pluck('text');
foreach ($titles as $title) {
echo $title;
}
?>
接收来自用户ID的数据,例如:
FROM messages->title FROM THE USER WITH THE `id`
我希望显示一个用户发送的所有消息。
谢谢。
DB::table('messages')->where('user_id', auth()->id())->pluck('text')
或者你可以在 Message
模型中定义关系:
public function user()
{
return $this->belongsTo(User::class);
}
然后加载消息:
$messages = auth()->user()->messages;
或者只是懒加载当前用户的消息,以备后用:
auth()->user()->load('messages');
id
将指代消息 ID。 - Naraviaauth()->user()->messages()->latest()->get()
。如果你想先显示旧的消息,可以使用oldest()
代替latest()
。 - Alexey Mezeninpluck()
之前加上latest()
或oldest()
即可。 - Alexey MezeninDB::table('messages')->where('user_id', '=', Auth::user()->id)->pluck('text');
这应该能解决问题
user
模型上设置一个名为messages
的关联,然后你就可以使用$user->messages->received();
方法。received
是messages
模型上的自定义方法,它只返回用户接收到的消息,而不是发送的消息。 - Andy Holmes