Let's go through this step by step.
1. Check autoload directive on composer.json
Open composer.json
file on your project root directory. Locate the the autoload
section. It should be looking like this:
{
...
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
}
Make sure you have this configuration under the psr-4
option:
"App\\": "app/"
This configuration tells the composer that we want to autoload all classes inside the app
directory using psr-4 convention and places it under the App
namespace.
2. Update your controller
First, your controller file name should be in CamelCase style. So we have to renamed it to TestController.php
. Make sure that it's saved under app/Http/Controllers
directory.
Now open your TestController.php
file, we have to capitalize the namespace and class name like so:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function getAbout()
{
return view('Learning.about') ;
}
public function getHome()
{
return view('Learning.index');
}
}
Note that we also turn this line:
class testController extends \app\Http\Controllers\Controller
Into:
class TestController extends Controller
Since we already import the base Controller
class, we don't have to specify the fully qualified name. We imported the Controller
class using the use
keyword:
use App\Http\Controllers\Controller;
Save your TestController.php
file.
3. Update your routes file
Now we have to update our app\Httpoutes.php
file. We just need to capitalize the controller name:
<?php
Route::get('test', ['uses' => 'TestController@getHome', 'as' => 'test']);
Route::get('about', ['uses' => 'TestController@getAbout', 'as' => 'about']);
4 Update your autoloader
Now the last thing to do. Open your terminal / command prompt. Go to your project directory and run the following command:
composer dump-autoload
This command will update the autoloader file (Read more here).
Now if you open up your browser and hit /test
route, you should see the content from resources/views/Learning/index.blade
.