我正在使用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]未定义。我做错了什么?还有什么可做的吗?
答案 0 :(得分:4)
URL::route()
期望一条命名路线,在这里您应该使用URL::to()
,或者您可以使用
Route::get('auth/register', [
'as' => 'register',
'uses' => 'Auth\AuthController@getRegister'
]);
然后使用URL::route('register')
链接到路线auth/register
答案 1 :(得分:3)
因为您尚未定义命名路由,URL::route
接受路由名称作为第一个参数。您刚刚定义了路径auth/register
。
要定义命名路线,您可以执行以下操作:
Route::post('auth/register', [
'as' => 'auth/register', 'uses' => 'Auth\AuthController@postRegister'
]);
答案 2 :(得分:1)
刚刚放好
Auth::routes();
在routes/web.php
答案 3 :(得分:0)
php artisan cache:clear
php artisan view:clear
php artisan route:clear
php artisan config:clear
答案 4 :(得分:-1)
为我工作,把&#34;作为&#34;并调用路线例如:
Route::get('auth/logout', ['as' => 'auth/logout','uses'=>'Auth\AuthController@getLogout']);
和HTML: y para el HTML:
<li><a href="{{route('auth/logout')}}">Logout</a></li>
此解决方案适用于Laravel 5.1