@if (Auth::check()) @if (Auth::check()) @if (Auth::check())

UserController not found

89 Views Asked by At

i have my blade file like this:

 <div class="nav-item dropdown">
                @if (Auth::check())
                    <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">{{ Auth::user()->name }}</a>
                    <div class="dropdown-menu">
                        <a href="/profileDetail" class="dropdown-item">Profile</a>
                        <a href="order_history" class="dropdown-item">My Order</a> 
                            
                        <a href="#" class="dropdown-item" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
                        Logout </a>

                        <form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
                        @csrf
                        </form>
                    </div>
                
                @else
              

                <div class="nav-item dropdown">
                    <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">Login</a>
                    <div class="dropdown-menu">
                        <a href="{{ route('user.login') }}" class="dropdown-item">Customer </a>
                        <a href="{{ route('user.register') }}r" class="dropdown-item">Register</a>
                            
                    </div>
                </div>
                
                @endif

                </div>

and my router like this:

/multi-auth router
Route::prefix('user') ->name ('user.') ->group (function(){

    Route::middleware (['guest']) ->group (function(){
        Route::view('/login', 'dashboard.user.login') ->name ('login');
        Route::view('/register', 'dashboard.user.register') ->name ('register');

    });

    Route::middleware(['auth']) ->group(function(){
        Route::view('/home', 'dashboard.user.home') ->name ('home');


    });
});

i have already add use App\Http\Controllers\UserController; in the web.php but i still get that UserController cannot found. I really dont know where i am wrong. Is it perhaps i dont use Route::has (user.login)?

i am using laravel/ui but i have changed my blade to the one i wrote above

1

There are 1 best solutions below

2
youss On

but you didnt mention the UserCotroller in your route? how do you expect ot to find it ? you are returning views through your route, you are not redirectting it to your controller

here is how you should declare it :

 Route::get('/register', [UserController::class, 'create'])
            ->middleware('guest')
            ->name('register');

    Route::post('/register', [UserController::class, 'store'])
            ->middleware('guest');


    Route::get('/login', [UserController::class, 'create'])
            ->middleware('guest')
            ->name('login');

    Route::post('/login', [UserController::class, 'store'])
            ->middleware('guest');

and in the create method you can write

return view(dashboard.user.login);