我对laravel和口才很新。Laravel雄辩的查询权数据
我有2个表threads
和messages
你可以在下面的链接查看结构:
线程
消息
现在我的目标是只查询具有该表的线程中的线程消息表中与登录用户相同的user_id。
有没有办法通过雄辩做到这一点,或者我必须为此编写一个查询?
我目前得到的所有线程是这样的:
$thread = Thread::findOrFail($id);
但是这给安全问题,因为你可以,如果你在我的路线改变ID去任何线程。
编辑
我的当前显示功能:
public function show($id)
{
$currentUserId = Auth::user()->id;
$threads = Thread::forUser($currentUserId)->latest('updated_at')->get();
try {
$thread = Thread::findOrFail($id);
} catch (ModelNotFoundException $e) {
Session::flash('error_message', 'Oops, not found.');
return redirect('messages');
}
if(array_has($threads, $thread)){
$users = User::whereNotIn('id', $thread->participantsUserIds($currentUserId))->get();
$thread->markAsRead($currentUserId);
return view('messenger.show', compact('thread', 'users'));
}else{
Session::flash('error_message', 'Oops, not found.');
return redirect('messages');
}
}
我需要一种方法来检查,如果$线程是在$线程。
你是什么意思的线程做? – Codearts
在一个线程中可以有多条消息。例如,我创建了一个线程“discussion1”,在这个讨论中可以有多个消息。线程就像2个用户之间的dm。 – Cruzito
@Codearts我希望这是有道理的,我想说:) – Cruzito