我制作了一个laravel系统,并包含了documentation中所述的Auth脚手架。我使用
进行了安装composer require laravel/ui --dev
php artisan ui vue --auth
并运行npm install
和npm run dev
来编译资产。但是出于某些奇怪的原因,/logout
路由返回了404。我的路由看起来像这样
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
我不知道在哪里看。我该如何解决?
答案 0 :(得分:2)
如果您查看vendor/laravel/framework/src/Illuminate/Routing/Router.php
,则会看到这段代码:
public function auth(array $options = [])
{
// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');
...
这意味着没有为登出定义任何GET
路由,只有POST
。
这就是为什么您收到404响应的原因。
您可以根据需要在自定义页面上自行添加一条GET
路线,例如:
Route::get('/logout', function () {
return view('my_logout_view');
});
答案 1 :(得分:0)
注销路径是其他人所说的POST请求。如果您想使用它
<a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">Logout</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="hidden">
{{ csrf_field() }}
</form>
请注意,表单中的method
设置为POST
,并且我们正在使用{{ csrf_field() }}
,因此我们可以发出该请求。