0

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?

0 Answers0