Laravel 5.1 路线未定义

Posted

技术标签:

【中文标题】Laravel 5.1 路线未定义【英文标题】:Laravel 5.1 Route not defined 【发布时间】:2016-01-24 02:53:47 【问题描述】:

我正在使用 Laravel 5.1 开发一个 webapp,并开始进行用户身份验证,我将此路由添加到 routes.php 文件中:

Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::post('auth/register', 'Auth\AuthController@postRegister');

如果我将链接输入到 url 栏中,它会起作用,但是如果我在模板中输入以下语法:

<a href=" URL::route('auth/register') ">Registra't</a>

我收到错误 Route [auth/register] not defined。我做错了什么?还有什么事情要做吗?

【问题讨论】:

【参考方案1】:

URL::route() 需要一个命名路由,这里你应该使用URL::to() 或者你可以创建一个命名路由

Route::get('auth/register', [
  'as' => 'register', 
  'uses' => 'Auth\AuthController@getRegister'
]);

然后使用URL::route('register')链接到路由auth/register

【讨论】:

【参考方案2】:

因为您还没有定义命名路由并且URL::route 接受路由名称作为它的第一个参数。你刚刚定义了一个路径auth/register

要定义命名路由,您可以这样做:

Route::post('auth/register', [
   'as' => 'auth/register', 'uses' => 'Auth\AuthController@postRegister'
]);

【讨论】:

【参考方案3】:

只要放 Auth::routes();routes/web.php

【讨论】:

【参考方案4】:

当我使用 auth0 tutorial 时,这对我有用

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

【讨论】:

【参考方案5】:

为我工作,例如输入“as”并调用路线:

Route::get('auth/logout', ['as' => 'auth/logout','uses'=>'Auth\AuthController@getLogout']);

对于 html: y 参数 HTML:

 <li><a href="route('auth/logout')">Logout</a></li> 

这个解决方案在 Laravel 5.1 中适用于我

【讨论】:

以上是关于Laravel 5.1 路线未定义的主要内容,如果未能解决你的问题,请参考以下文章

未定义的变量:请求 - Laravel 5.1

Laravel 5.1 中未定义的默认命名空间

Laravel 6路线未定义

Laravel 5.1 错误调用未定义函数 App\Http\Controllers\Auth\sendRegistermail()

Laravel:路线[users.edit]未定义

在 Laravel 5.1 中传递数据控制器以查看获取未定义的变量