duanlv5084 2016-02-13 04:25
浏览 126
已采纳

Laravel 5.2路由错误

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\test1esources\views\pages\home.blade.php)

  • 写回答

3条回答 默认 最新

  • doufangzhang4454 2016-02-13 04:45
    关注

    The error

    Route [tasks.index] not defined. (View: D:\wamp\www\test1esources\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'
        ]);
    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?