Eh bien, même si ce que suggèrent par @Tauras fonctionne, tout simplement je ne pense pas que c'est la bonne façon de traiter avec ce.
Vous avez dit que vous avez exécuté php artisan make:auth
qui ont également inséré Auth::routes();
votre routes/web.php
routage de fichiers. Qui vient par défaut logout
route déjà défini et est nommé d' logout
.
Vous pouvez voir ici sur GitHub, mais je vais aussi signaler le code ici pour plus de simplicité:
/**
* Register the typical authentication routes for an application.
*
* @return void
*/
public function auth()
{
// Authentication Routes...
$this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
$this->post('login', 'Auth\LoginController@login');
$this->post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
$this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
$this->post('register', 'Auth\RegisterController@register');
// Password Reset Routes...
$this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
$this->post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
$this->get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
$this->post('password/reset', 'Auth\ResetPasswordController@reset');
}
Puis de nouveau s'il vous plaît noter que logout
exige POST
que la méthode de requête HTTP. Il y a beaucoup de raison valable derrière tout cela, mais juste de parler d'un point très important est que, de cette façon, vous pouvez éviter cross-site request forgery.
Donc d'après ce que je viens de remarquer une bonne façon de mettre en œuvre ce pourrait être juste ce:
<a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('frm-logout').submit();">
Logout
</a>
<form id="frm-logout" action="{{ route('logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
Enfin, notez que j'ai inséré laravel hors de la zone de fonction, prête {{ csrf_field() }}
!