uhe*_*xos 6 php routes laravel laravel-routing laravel-5.7
我正在尝试仅使用内置的Laravel功能实现基本身份验证系统.系统可以正常工作,但前提是我为/ admin/login路由指定名称[即...-> name('admin.login)].如果我把它拿出来,我得到的例外情况如下.
ErrorException(E_ERROR)Route [login.admin]未定义.(查看:/var/www/html/shop/resources/views/auth/login.blade.php)
在过去,我能够访问未命名的路线,我可以访问其他未命名的路线/login/admin.我希望有人能告诉我为什么我会收到错误.
路线
Auth::routes();
Route::get('/login/admin', 'Auth\LoginController@showAdminLoginForm')->name('login.admin');
Route::get('/login/staff', 'Auth\LoginController@showStaffLoginForm');
Route::get('/register/admin', 'Auth\RegisterController@showAdminRegisterForm');
Route::get('/register/staff', 'Auth\RegisterController@showStaffRegisterForm');
Run Code Online (Sandbox Code Playgroud)
$ url可以有2个值admin或staff.
登录刀片页面
@isset($url)
<form method="POST" action="{{ route('login.'.$url) }}">
@else
<form method="POST" action="{{ route('login') }}">
@endisset
Run Code Online (Sandbox Code Playgroud)
该命令routes:list还显示路由存在,只是未命名.
| | GET|HEAD | login/admin | | App\Http\Controllers\Auth\LoginController@showAdminLoginForm | web,guest,guest:admin,guest:staff |
| | POST | login/admin | | App\Http\Controllers\Auth\LoginController@adminLogin | web,guest,guest:admin,guest:staff |
| | GET|HEAD | login/writer | | App\Http\Controllers\Auth\LoginController@showWriterLoginForm | web,guest,guest:admin,guest:staff |
| | POST | login/writer | | App\Http\Controllers\Auth\LoginController@writerLogin | web,guest,guest:admin,guest:staff |
Run Code Online (Sandbox Code Playgroud)
如果我了解您的问题以及您要完成的工作...
在登录刀片中,使用:
route('login.'.$url)
Run Code Online (Sandbox Code Playgroud)
这需要路由名称。那就是引发错误的原因:
ErrorException (E_ERROR)
Route [login.admin] not defined. (View: /var/www/html/shop/resources/views/auth/login.blade.php)
Run Code Online (Sandbox Code Playgroud)
route()函数查找路线名称。
不要使用Action的路由路径,而是使用实际的URL:
$url = Request::url();
Run Code Online (Sandbox Code Playgroud)
因为您要尝试的是重新加载同一页面。
(执行此操作的方法有很多。这只是一种方法。但是,您的操作方式有些奇怪,恕我直言-尽管它确实可以工作。)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |