Я использую Laravel Messenger Package и хочу сделать Load more for messages. В текущей ситуации я передаю идентификатор (начиная с 0) и получаю каждые 5 запросов, но не могу использовать идентификатор, потому что есть также строка «user_id».
Существует несколько таблиц, в которых есть релизы, темы, участия и сообщения. Когда поток вызывается статически, к нему подключаются другие модалы.
Ajax работает, показывает сообщения, но не все. Только 10 из 15.
Это код:
function load_data(Request $request){
if($request->ajax()){
if($request->id > 0){
$threads = Thread::forUser(Auth::id())
->latest('updated_at')
->where('threads.id', '<', $request->id)
->limit(5)
->get();
}else{
$threads = Thread::forUser(Auth::id())
->latest('updated_at')
->limit(5)
->get();
}
$output = '';
$last_id = '';
if(!$threads->isEmpty()){
foreach($threads as $thread){
$class = $thread->isUnread(Auth::id()) ? 'mdi-new-box favorite' : '';
$output .= ' <a href="'.route('member.poruka', $thread->id).'">
<div class="mail-list">
<div class="preview-thumbnail align-self-center">
<div class="preview-icon">
<img class="mdi mr-3" src="'.$thread->creator()->main_image.'">
<p>'.$thread->creator()->name.'</p>
</div>
</div>
<div class="content align-self-center">
<p class="sender-name"><b>'.$thread->subject.'</b></p>
<p class="message_text">'.$thread->latestMessage->body.'</p>
</div>
<div class="details">
<i class="mdi '.$class.'"></i>
</div>
</div>
</a>
';
$last_id = $thread->id;
}
$output .= '
<div id="load_more">
<button type="button" name="load_more_button" class="btn btn-success form-control" data-id="'.$last_id.'" id="load_more_button">Load More</button>
</div>
';
}else{
$output .= '
<div id="load_more">
<button type="button" name="load_more_button" class="btn btn-info form-control">No Data Found</button>
</div>
';
}
echo $output;
}
}
Это предложение "WHERE" создает проблему. Я думал о том, чтобы поместить все потоки в массив и в основном "обмануть" идентификатор.