8

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.

Nissa
  • 4,636
  • 8
  • 29
  • 37
Ciapss
  • 106
  • 1
  • 2
  • 7

5 Answers5

13

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

Make sure file exists.

Captain Sparrow
  • 1,114
  • 17
  • 26
  • Saved me some time thanks - During package development I copied all my controllers to new package destination (including the default Controller.php file). Once restored all worked OK – Friendly Code Aug 29 '19 at 19:04
3

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

PlayMa256
  • 6,603
  • 2
  • 34
  • 54
2

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

Drudge Rajen
  • 7,584
  • 4
  • 23
  • 43
0

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 !

Ciapss
  • 106
  • 1
  • 2
  • 7
0

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

Rachid O
  • 13,013
  • 15
  • 66
  • 92
John
  • 1
  • 1