I am trying to implement a messaging system using Laravel. The sending and receiving of messages between two users is quite working fine But my only issue is to display all the messages received by a user on the /conversations view. When a user sends a message to another user, It shows a bar proving the message has been received but when you click on the tab it gets a different user id not the id of the sender. Don't know what is wrong.
Here is my Controller
public function index (){
return view('conversations/index', [
'users'=>$this->r->getConversations(Auth::user()->id),
'unread' => $this->r->unreadCount(Auth::user()->id)
]);
}
public function show (User $user){
$me = Auth::user();
$messages = $this->r->getMessagesFor($me->id, $user->id)->paginate(5);
$unread = $this->r->unreadCount($me->id);
if (isset($unread[$user->id])) {
$this->r->readAllFrom($user->id, $me->id);
unset($unread[$user->id]);
}
return view('conversations/show', [
'users'=>$this->r->getConversations($me->id),
'user'=>$user,
'messages'=>$messages,
'unread' => $unread
]);
}
I used a repository with this included
private $user;
private $message;
public function __construct(User $user, Message $message)
{
$this->user = $user;
$this->message = $message;
}
public function getConversations(int $userId)
{
$conversations = $this->message->where('to_id', $userId)->get();
//dd($conversations);
return $conversations;
}
Here is my View
<aside class="col-lg-3 column border-right">
<div class="widget">
<div class="tree_widget-sec">
<div class="padding-left">
<div class="contact-edit" id="ci">
<h3>Messenger</h3>
<div class="col-md-12">
<div class="list-group">
@foreach($users as $user)
<a class = "list-group-item d-flex justify-content-between align-items-center" href="">
@if(isset($unread[$user->id]))
<span class="badge-pill badge-primary"></span>
@endif
</a>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
</aside>
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire