Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

DidaceEkotto's avatar

Laravel livewire comment resoudre l'erreur THE GET METHOD IS NOT SUPPORTED FOR ROUTE LIVEWIRE/UPDATE. SUPPORTED METHODS: POST

Hi guys, I'm having a problem with Laravel and LiveWire. Every time I submit a form, I always get this error: THE GET METHOD IS NOT SUPPORTED FOR ROUTE LIVEWIRE/UPDATE. SUPPORTED METHODS: POST. How can I fix this? I'm having a bit of trouble. Here's an example of my code. Laravel blade code

@extends("layouts.auth.template_auth")
@php
    $title = "Login :: ".env("APP_NAME");
    $title2 = "Login";
@endphp
@push("body")
    <body>
@endpush
@section("container")

@livewire("front.auth.login",["page"=>request()->fullUrl()])


@endsection

Livewire file

    <form wire:submit.prevent='login' method="POST">
		<div>
			<input type="email" wire:model="email_or_username">
			@error('email_or_username')
                <p style="color: red">{{ $message }}</p>
            @enderror
		</div>
		<div>
			<input type="password" wire:model="password">
			@error('password')
                <p style="color: red">{{ $message }}</p>
            @enderror
		</div>
		<div>
			<button type="submit">Login</button>
		</div>
	</form>

Livewire controller

public function login()
{
    // Validation des champs requis
    $this->validate([
        'email_or_username' => 'required',
        'password' => 'required',
    ], [
        'email_or_username.required' => 'Identifiant ou email est requis.',
        'password.required' => 'Mot de passe est requis.',
    ]);

    // Déterminer le type de connexion (email ou nom d'utilisateur)
    $loginType = filter_var($this->email_or_username, FILTER_VALIDATE_EMAIL) ? 'email' : 'name';

    $credentials = [
        $loginType => $this->email_or_username,
        'password' => $this->password,
    ];

    // Obtenir les informations IP et de localisation

    $setting = Setting::where('id', 1)->first();

    if($setting->online_mode == "non")
    {
        $ip_address = $_SERVER['REMOTE_ADDR'];
        $location = Location::get('129.0.204.227');
    }
    else
    {
        $ip_address = request()->ip();
        $location = Location::get($ip_address);
    }

    // Vérification des informations d'identification
    if (!Auth::attempt($credentials, $this->remember)) {
        session()->flash('error', 'Email ou mot de passe incorrect.');
        $this->password = ""; // Réinitialiser le champ mot de passe
        return;
    }

    // Récupération de l'utilisateur connecté
    $user = Auth::user();

    // Mettre à jour la localisation de l'utilisateur si elle change
    if ($location && $user->regionCode !== $location->regionCode) {
        $user->update([
            'pays' => $location->countryName,
            'region' => $location->regionName,
            'ville' => $location->cityName,
            'longitude' => $location->longitude,
            'latitude' => $location->latitude,
            'adresse_ip' => $location->ip,
            'regionCode' => $location->regionCode,
            'countryCode' => $location->countryCode,
        ]);
    }

    // Redirection après connexion réussie
    return redirect()->route('app.home')->with('success', 'Salut, content de vous revoir !');
}

Thanks in advance for your answers.

0 likes
1 reply
Tray2's avatar

You don't have a GET route for whatever endopopint you are trying to hit.

Please or to participate in this conversation.