[英]Laravel 5.2 Route Error
在我的home.blade.php中,我有以下代碼
<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>
然后在routes.php中,我有以下內容,
Route::get('/', [
'as' => 'home',
'uses' => 'PagesController@home'
]);
Route::get('/index', [
'as' => 'index',
'uses' => 'TasksController@index'
]);
Route::get('/create', [
'as' => 'create',
'uses' => 'TasksController@create'
]);
為什么我的http:// localhost:8000 /出現此錯誤
路由[tasks.index]未定義。 (視圖:D:\\ wamp \\ www \\ test1 \\ resources \\ views \\ pages \\ home.blade.php)
錯誤
路由[tasks.index]未定義。 (視圖:D:\\ wamp \\ www \\ test1 \\ resources \\ views \\ pages \\ home.blade.php)
這是因為您將其命名為index
而不是tasks.index
,所以可以在路由聲明中將名稱從index
更改為task.index
,或者在href
屬性中引用路由時使用index
。 現在您有了:
Route::get('/index', [
'as' => 'index', // index is the name here so use the name as it is
'uses' => 'TasksController@index'
]);
與tasks.create
相同:
Route::get('/create', [
'as' => 'create', // Name is "create" not "tasks.create"
'uses' => 'TasksController@create'
]);
如果使用組進行命名(如V-5.1及更高版本)會更好:
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'
]);
});
該錯誤是因為Laravel無法找到任何名為tasks.index
或tasks.create
路由。 這是因為您將路由命名為index
並create
home
。
因此,如果要鏈接指向URL: /tasks
,則必須使用其名稱鏈接到該路由。
即:網址將是route('index')
。 這取自路線:
從routes.php
文件中可以看到, 'as'=>'index'
是路由的名稱,這就是您應該調用的名稱。
因此,鏈接變為:
<a href="{{ route('index') }}" class="btn btn-info">View Tasks</a>
<a href="{{ route('create') }}" class="btn btn-info">CreateTasks</a>
正如Alpha所說,最好對路線進行分組。 您也可以像這樣鏈接方法
Route::group(['as' => 'tasks.'], function ()
{
Route::get('/index', 'TasksController@index')->name(index);
Route::get('/create', 'TasksController@create')->name(create);
});
定義路線后,您可以使用路線功能
{{ route('tasks.index') }}
{{ route('tasks.create') }}
或者,如果您不希望對路線進行分組,則可以執行以下操作:
Route::get('/index', 'TasksController@index')->name(tasks.index);
Route::get('/create', 'TasksController@create')->name(tasks.create);
現在您可以使用:
<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>
您可以在項目文件夾中查看通過此命令運行的路由及其名稱:
php artisan route:list
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.