Mahmoud Diab
Mahmoud Diab

Reputation: 551

Method App\Http\Controllers\LanguagesController::index does not exist

LARAVEL error!!

when I make a controller insid folder called "Admin" by command "php artisan make:controller Admin\ControllerLanguages"

and Route the page This error appears:

Method App\Http\Controllers\LanguagesController::index does not exist. Bad Method Call Did you mean App\Http\Controllers\LanguagesController::validate() ?

but when i make the controller normally in the default folder by command: "php artisan make:controller LanguagesController"

the route runs and the page appears, i want the page appears when i create it in "Admin" Folder, I tried many ways, but to no avail.

Controller Code Route Code

Upvotes: 1

Views: 2975

Answers (1)

Donkarnash
Donkarnash

Reputation: 12835

You should declare the namespace for the route group

Route::prefix('languages')
    ->namespace('App\Http\Controllers\Admin')
    ->group(function() {
        Route::get('/', 'LanguagesController@index')->name('admin.languages');
        //All other Routes for languages defined here
        //LanguagesController is at app/Http/Controllers/Admin folder
    });

Or you can import the namespace via use statement like, at the top

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Admin\LanguagesController;

Route::prefix('languages')
    ->group(function(){
        Route::get('/', [LanguagesController::class, 'index'])->name('admin.languages');

        //Other languages routes here
    });

Upvotes: 1

Related Questions