命名路由在Laravel 5.2中不起作用


Named routes not working in Laravel 5.2?

我有一些使用as参数的命名路由。在5.1中似乎工作得很好,但当我在5.2中使用相同的包时,它会抛出一个错误:

ErrorException in UrlGenerator.php line 307:
Route [/blog] not defined. (View: ...)

我已经清除了所有的藏匿处,但没有用。

php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan config:clear

已倾倒:

composer dump-autoload

但仍然不起作用。当我做php artisan route:list时,我觉得还可以:

+--------+----------+------------------+------------+----------------------------------------------------------------+------------+
| Domain | Method   | URI              | Name       | Action                                                         | Middleware |
+--------+----------+------------------+------------+----------------------------------------------------------------+------------+
|        | GET|HEAD | blog             | blog       | ...                                                            |            |
|        | GET|HEAD | blog/feed        | feed       | ...                                                            |            |

编辑:澄清一件事。我在尝试生成路由时肯定使用了route('blog')。它在Laravel 5.1中也很好。更不用说,在我介绍的特定示例中,它与所有命名的路由有关,而不仅仅是blog

您的错误消息说您正试图访问名为"/blog"的路由,但您的路由名为"blog"(无斜杠)。在某个地方,您有代码route('/blog'),这导致了您的错误;它应该是CCD_ 6。

我对Laravel 5.2也有同样的问题。我定义了3条简单的路线。

Route::get('/', function () {
    if (!empty(Auth::user())) {
        return view('auth.zipline');
    } else {
        return view('no_auth.login');
    }
});
Route::get('/login', function () {
    return view('no_auth.login');
});
Route::get('/pricing', function () {
    return view('no_auth.pricing');
});

no_auth.login视图存在(显示"登录"的文本)。存在no_auth.pricing视图(文字显示"pricing")

/路线有效。我得到了登录视图。

其他路线都不起作用。直接进入/login或/pricing会给我404个错误。服务器上启用了mod_rewrite,我使用的是默认的Laravel 5.2.htaccess文件。

php artisan路由:列表看起来像(注意到缺少前导斜杠吗?):

+--------+----------+---------+------+---------+------------+
| Domain | Method   | URI     | Name | Action  | Middleware |
+--------+----------+---------+------+---------+------------+
|        | GET|HEAD | /       |      | Closure |            |
|        | GET|HEAD | login   |      | Closure |            |
|        | GET|HEAD | pricing |      | Closure |            |
+--------+----------+---------+------+---------+------------+

Routes文件中肯定有/login和/pricing的斜杠。我已经跑了php artisan路由:清除