I am trying to implement Logout functionality on my Laravel app with TALL stack, I am firing logout event from my blade via Livewire wire:click but it doesn't seem to fire any method from its own component.
Loading my component in app.blade.php layout:
<li class="flex">
@livewire('logout')
</li>
logout.blade.php
<a
wire:click="logout"
class="some-classes"
>
<svg
class="w-4 h-4 mr-3"
aria-hidden="true"
fill="none"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path d=""></path>
</svg>
<span>Log out</span>
</a>
Logout.php (Livewire Component)
<?php
namespace App\Http\Livewire;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
class Logout extends Component
{
use AuthorizesRequests;
public function render()
{
return view('livewire.admin-panel.logout');
}
public function logout()
{
Auth::logout();
$this->redirect(route('login'));
}
}
I have tried dump inside function and it turned out that the methods are not being called. I have sigle root <a></a> in component's view, using <div> doen't make any difference either.
I used <button> in place of <a> and it didn't work either. I wonder what I could possibly be doing wrong here. If there's any other way of doing this that would be much appreciated.