Home > Blockchain >  Controller is imported but web.php throws Target class [App\Http\Controllers\Auth\LoginControlle
Controller is imported but web.php throws Target class [App\Http\Controllers\Auth\LoginControlle

Time:05-18

Update:

When I use:

namespace App\Http\Controllers\Auth;

inside LoginController.php, this error is thrown:

Class "App\Http\Controllers\Auth\Controller" not found

Original Question:

I've added following route to web.php:

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Auth\LoginController;

Route::post('/admin/login', [LoginController::class, 'store']);

but when called, it throws:

Target class [App\Http\Controllers\Auth\LoginController] does not exist.

This is the controller's location:

enter image description here

LoginController.php:

<?php

namespace App\Http\Controllers;


use App\Http\Requests\Auth\LoginRequest;


class LoginController extends Controller
{
    public function store(LoginRequest $request)
    {
        $request->authenticate();
        $request->session()->regenerate();

        redirect('/admin/dashboard');
    }
}

Replacing the import inside web.php with:

[Auth\LoginController::class, 'store']

does not help either. What am I doing wrong?

CodePudding user response:

in LoginController Class write wrong namespase:

namespace App\Http\Controllers\Auth;

CodePudding user response:

Your namespace inside LoginController should be App\Http\Controllers\Auth

CodePudding user response:

In LoginController.php you need to check the namespace for the file

It's not correct, because the file located inside Auth directory so you must follow psr4 guide

name space will be App\Http\Controllers\Auth; instead of App\Http\Controllers;

CodePudding user response:

Your namespace used in LoginController is wrong, as your class is defined under Auth folder so it should be:

namespace App\Http\Controllers\Auth;

Also the code snippet you have shared of web.php show's namespace declaration at the top, please remove this declaration.

CodePudding user response:

Importing it like so inside LoginController.php seems to resolve the issue (although I have no idea why):

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;

class LoginController extends Controller
{
    public function store(LoginRequest $request)
    {
        $request->authenticate();
        $request->session()->regenerate();

        redirect('/admin/dashboard');
    }
}
  • Related