DidaceEkotto
a posé

Laravel livewire comment resoudre l'erreur

Salut les gars j'ai un probleme avec laravel et livewire chaque fois que je soumet un formalaire j'ai toujours cette erreur: THE GET METHOD IS NOT SUPPORTED FOR ROUTE LIVEWIRE/UPDATE. SUPPORTED METHODS: POST comment le resoudre je galere un peut voici un exemple de mon code merci d'avance pour vous réponses

@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 !');
}
stevymarlino
a répondu

Bonjour @DidaceEkotto si tu fais ton form avec livewire tu n'a plus besoin de préciser method="POST" retire cela et ton formulaire normalement ne devrait plus l'afficher se message. voic documentation : livewire validation

DidaceEkotto
a répondu

@stevymarlino sans la method="POST" j'avais toujours cette erreur je l'ai juste rajouter comme ça j'ai le même problème avec le wire:click il y'a des moments ou sa donne sans PB et il y a des moments ou j'ai cette erreur

mr_wilfried
a répondu

Essaye de publier manuellement les assets de livewire. Plus d'info ici

Il faut Se connecter ou Créer un compte pour participer à cette conversation.