奇怪的错误“路线未定义”

时间:2017-03-13 15:14:32

标签: php laravel laravel-5

我正在学习Laravel 5.4,我无法解决这个问题。我在我的视图刀片中添加了两条路线,如下所示

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

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

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

HomeController@index我加载上面有按钮的索引页面,就像这样

<?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'));
    }
       ...

}

Backend目录中的HomeController持有

<?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)

1 个答案:

答案 0 :(得分:1)

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

route()helper make named route

路由

Route::POST("/backend/blog/create", "Backend\BlogController@create")->name("backend.blog.create");

在视图中

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