Jonh Doe Jonh Doe - 2 months ago 9
PHP Question

Laravel 5.2 Route Error

In my home.blade.php I have the below code

<a href="{{ route('tasks.index') }}" class="btn btn-info">View Tasks</a>
<a href="{{ route('tasks.create') }}" class="btn btn-primary">Add New Task</a>


then in the routes.php I have the following,

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

Route::get('/index', [
'as' => 'index',
'uses' => 'TasksController@index'
]);

Route::get('/create', [
'as' => 'create',
'uses' => 'TasksController@create'
]);


Why am I having this error for http://localhost:8000/

Route [tasks.index] not defined. (View: D:\wamp\www\test1\resources\views\pages\home.blade.php)

Answer

The error

Route [tasks.index] not defined. (View: D:\wamp\www\test1\resources\views\pages\home.blade.php)

It's because you've named it index not tasks.index, so either change the name from index to task.index in route declaration or use index when referencing the route in your href attribute. Now you have this:

Route::get('/index', [
    'as' => 'index', // index is the name here so use the name as it is
    'uses' => 'TasksController@index'
]);

Same for tasks.create:

Route::get('/create', [
    'as' => 'create', // Name is "create" not "tasks.create"
    'uses' => 'TasksController@create'
]);

It would be better if you use a group for naming like (For V-5.1 and greater):

Route::group(['as' => 'tasks.'], function () {

    Route::get('/index', [
        'as' => 'index', // Now you can usee 'tasks.index'
        'uses' => 'TasksController@index'
    ]);

    Route::get('/create', [
        'as' => 'create', // Now you can usee 'tasks.create'
        'uses' => 'TasksController@create'
    ]);
});
Comments