ErrorException Undefined variable $users
So there is the code if you need other page of code tell me so i can provide it. I try to have a page with conversations but when i go on it i got this error undefined varaible $users
index.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="col-md-3">
@foreach($users as $user)
<div class="list-group">
<a class="list-group-item" href="{{ route('conversations.show', $user->id )}}">{{$user->name}}</a>
</div>
@endforeach
</div>
</div>
@endsection
ConversationsController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests\StoreMessageRequest;
use App\Notifications\MessageReceived;
use App\Repository\ConversationRepository;
use App\Models\User;
use Illuminate\Auth\AuthManager;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class ConversationsController extends Controller
{
/**
* @var ConversationRepository
*/
private $r;
/**
* @var AuthManager
*/
private $auth;
public function __construct(ConversationRepository $conversationRepository, AuthManager $auth)
{
$this->middleware('auth');
$this->r = $conversationRepository;
$this->auth = $auth;
}
public function index () {
return view('conversations/index');
}
public function show (User $user) {
$me = $this->auth->user();
$messages = $this->r->getMessagesFor($me->id, $user->id)->paginate(50);
$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
]);
}
public function store (User $user, StoreMessageRequest $request) {
$message = $this->r->createMessage(
$request->get('content'),
$this->auth->user()->id,
$user->id
);
$user->notify(new MessageReceived($message));
return redirect(route('conversations.show', ['id' => $user->id]));
}
}
web.php
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
})->name('welcome');
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Auth::routes();
/* Ads Routes */
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/annonces', [App\Http\Controllers\AdController::class,'index'])->name('ad.index');
Route::get('/annonce', [App\Http\Controllers\AdController::class,'create'])->name('ad.create');
Route::post('/annonce/create', [App\Http\Controllers\AdController::class,'store'])->name('ad.store');
Route::post('/search', [App\Http\Controllers\AdController::class,'search'])->name('ad.search');
/* Messages Routes */
Route::get('/message/{seller_id}/{ad_id}' ,[App\Http\Controllers\MessageController::class,'create'])->name('message.create');
Route::post('/message' ,[App\Http\Controllers\MessageController::class,'store'])->name('message.store');
/* Messagerie Routes */
Route::get('/messageries', [App\Http\Controllers\ConversationsController::class, 'index'])->name('messageries');
Route::get('/conversations', [App\Http\Controllers\ConversationsController::class, 'index'])->name('conversations');
Route::get('/conversations/{user}', [App\Http\Controllers\ConversationsController::class, 'show'])->name('conversations.show');
Route::post('/conversations/{user}', [App\Http\Controllers\ConversationsController::class, 'store']);
when i try to go on url/conversations i got this error. How can i solve this? Where can the problem from controller routes or from the index page?