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 错误调用未定义函数 App\Http\Controllers\Auth\sendRegistermail()