2017-03-13 106 views
0

我正在学习Laravel 5.4,我无法解决此问题。我已经在我看来刀片添加两条路线这样奇怪的错误“路由未定义”

<a href="{{ route('backend.blog.create') }}" class="btn btn-primary">Write post</a> 

然后在我的路线web.php文件我有

Route::resource('/backend/blog', 'Backend\BlogController'); 

[email protected],我加载具有上面的按钮索引页,像这

<?php 

namespace App\Http\Controllers\Backend; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Post; 

class BlogController extends BackendController 
{ 
    protected $limit = 5; 

    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     $posts  = Post::with('category', 'author')->latest()->paginate($this->limit); 
     $postCount = Post::count(); 
     return view("backend.blog.index", compact('posts', 'postCount')); 
    } 
     ... 

} 

的HomeController在后端DIR持有

<?php 

namespace App\Http\Controllers\Backend; 

use App\Http\Requests; 
use Illuminate\Http\Request; 

class HomeController extends BackendController 
{ 
    /** 
    * Show the application dashboard. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     return view('backend.home'); 
    } 
} 

backend.home上面有a href产生错误..为什么会发生这种情况?

完整的错误消息

ErrorException in UrlGenerator.php line 304: 
Route [backend.blog.create] not defined. (View: /var/www/blog/resources/views/backend/home.blade.php) 
+0

在您的终端中使用'php artisan route:list'来检查路由名称。 –

+0

'route(..)'用于命名的路由。资源不会注册任何命名的路由。 – apokryfos

+1

@apokryfos,实际上资源已经自动生成名字 –

回答

1
Route::resource('/backend/blog', 'Backend\BlogController', [ 
    'names' => [ 
     'create' => 'backend.blog.create' 
    ] 
]); 

路线()辅助化妆命名的路由

路由

Route::POST("/backend/blog/create", "Backend\[email protected]")->name("backend.blog.create"); 

鉴于

{{ route('backend.blog.create') }} 
+0

谢谢,但仍然无效.. – VLS

+0

@VLS当你这样做或者不同的时候,你会得到同样的错误吗? –

+0

@RossWilson,同样的错误。 – VLS