Ciapss
Ciapss

Reputation: 106

Class 'App\Http\Controllers\Controller' not found - Laravel 5.2

I am new here but I already checked all solutions about my problem here and still didn't fix it.

I want to create simple app with tutorial in Laravel 5.2, and I can't make my controller to work.

I named my app "test" and here is a code:

PagesController.php:

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function getAbout(){
         return view('about');   
    }
}

routes.php:

Route::get('about', [
    'as' => 'about',
    'uses' => 'PagesController@getAbout'
]);

And Controller.php (default):

<?php

namespace test\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

Do you see any problem here? I am sure all files are in correct folders.

Upvotes: 8

Views: 49263

Answers (6)

AlphaBeta
AlphaBeta

Reputation: 1033

It's a long time since the original post, but I had the same error, so here's the solution for future reference:

Change:

namespace test\Http\Controllers;

to:

namespace App\Http\Controllers;

and it'll find the Controller class.

Upvotes: 0

John
John

Reputation: 1

In my case I had two namespaces one for the controllers and one for the models in the controller.php

namespace App\Http\Controllers;

namespace App\Http\Models;

second one was interfering with the first

I removed the second one and voila ... code worked

Upvotes: 0

Tousif Ahmed
Tousif Ahmed

Reputation: 1082

Error can also occur if App/Http/Controllers/ folder does not have Controller.php file.

Make sure file exists.

Upvotes: 13

Ciapss
Ciapss

Reputation: 106

My controller now looks like this:

<?php

namespace test\Http\Controllers;

use test\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function getAbout(){
     return view('about');   
    }
}

And error is still there

Update:

Okay, I created a new project and it finnaly works. I think all ansewrs will be helpful for similiar problems :)

Thanks for help !

Upvotes: 0

PlayMa256
PlayMa256

Reputation: 6831

To make everything correct, run this.

php artisan app:name YourApplicationName 

it is going to change everything with app to your application name, so you wont need to write manually test everywhere

Upvotes: 3

Drudge Rajen
Drudge Rajen

Reputation: 7987

Please correct your namespace in your pagecontroller

<?php


namespace test\Http\Controllers;

use test\Http\Controllers\Controller;

class PagesController extends Controller
{
    public function getAbout(){
         return view('about');   
    }
}

UPDATE :

After change in namespace in controller please dump-autoload your composer:

Composer dump-autoload

Upvotes: 2

Related Questions