Reputation: 106
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
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
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
Reputation: 1082
Error can also occur if App/Http/Controllers/ folder does not have Controller.php file.
Make sure file exists.
Upvotes: 13
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
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
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