réponses
694 vues
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
1@extends("layouts.auth.template_auth")2@php3 $title = "Login :: ".env("APP_NAME");4 $title2 = "Login";5@endphp6@push("body")7 <body>8@endpush9@section("container")1011@livewire("front.auth.login",["page"=>request()->fullUrl()])121314@endsection1@extends("layouts.auth.template_auth")2@php3 $title = "Login :: ".env("APP_NAME");4 $title2 = "Login";5@endphp6@push("body")7 <body>8@endpush9@section("container")1011@livewire("front.auth.login",["page"=>request()->fullUrl()])121314@endsection
Livewire file
12<form wire:submit.prevent='login' method="POST">3 <div>4 <input type="email" wire:model="email_or_username">5 @error('email_or_username')6 <p style="color: red">{{ $message }}</p>7 @enderror8 </div>9 <div>10 <input type="password" wire:model="password">11 @error('password')12 <p style="color: red">{{ $message }}</p>13 @enderror14 </div>15 <div>16 <button type="submit">Login</button>17 </div>18</form>12<form wire:submit.prevent='login' method="POST">3 <div>4 <input type="email" wire:model="email_or_username">5 @error('email_or_username')6 <p style="color: red">{{ $message }}</p>7 @enderror8 </div>9 <div>10 <input type="password" wire:model="password">11 @error('password')12 <p style="color: red">{{ $message }}</p>13 @enderror14 </div>15 <div>16 <button type="submit">Login</button>17 </div>18</form>
Livewire controller
1public function login()2 {3 // Validation des champs requis4 $this->validate([5 'email_or_username' => 'required',6 'password' => 'required',7 ], [8 'email_or_username.required' => 'Identifiant ou email est requis.',9 'password.required' => 'Mot de passe est requis.',10 ]);1112 // Déterminer le type de connexion (email ou nom d'utilisateur)13 $loginType = filter_var($this->email_or_username, FILTER_VALIDATE_EMAIL) ? 'email' : 'name';1415 $credentials = [16 $loginType => $this->email_or_username,17 'password' => $this->password,18 ];1920 // Obtenir les informations IP et de localisation2122 $setting = Setting::where('id', 1)->first();2324 if($setting->online_mode == "non")25 {26 $ip_address = $_SERVER['REMOTE_ADDR'];27 $location = Location::get('129.0.204.227');28 }29 else30 {31 $ip_address = request()->ip();32 $location = Location::get($ip_address);33 }3435 // Vérification des informations d'identification36 if (!Auth::attempt($credentials, $this->remember)) {37 session()->flash('error', 'Email ou mot de passe incorrect.');38 $this->password = ""; // Réinitialiser le champ mot de passe39 return;40 }4142 // Récupération de l'utilisateur connecté43 $user = Auth::user();4445 // Mettre à jour la localisation de l'utilisateur si elle change46 if ($location && $user->regionCode !== $location->regionCode) {47 $user->update([48 'pays' => $location->countryName,49 'region' => $location->regionName,50 'ville' => $location->cityName,51 'longitude' => $location->longitude,52 'latitude' => $location->latitude,53 'adresse_ip' => $location->ip,54 'regionCode' => $location->regionCode,55 'countryCode' => $location->countryCode,56 ]);57 }5859 // Redirection après connexion réussie60 return redirect()->route('app.home')->with('success', 'Salut, content de vous revoir !');61 }1public function login()2 {3 // Validation des champs requis4 $this->validate([5 'email_or_username' => 'required',6 'password' => 'required',7 ], [8 'email_or_username.required' => 'Identifiant ou email est requis.',9 'password.required' => 'Mot de passe est requis.',10 ]);1112 // Déterminer le type de connexion (email ou nom d'utilisateur)13 $loginType = filter_var($this->email_or_username, FILTER_VALIDATE_EMAIL) ? 'email' : 'name';1415 $credentials = [16 $loginType => $this->email_or_username,17 'password' => $this->password,18 ];1920 // Obtenir les informations IP et de localisation2122 $setting = Setting::where('id', 1)->first();2324 if($setting->online_mode == "non")25 {26 $ip_address = $_SERVER['REMOTE_ADDR'];27 $location = Location::get('129.0.204.227');28 }29 else30 {31 $ip_address = request()->ip();32 $location = Location::get($ip_address);33 }3435 // Vérification des informations d'identification36 if (!Auth::attempt($credentials, $this->remember)) {37 session()->flash('error', 'Email ou mot de passe incorrect.');38 $this->password = ""; // Réinitialiser le champ mot de passe39 return;40 }4142 // Récupération de l'utilisateur connecté43 $user = Auth::user();4445 // Mettre à jour la localisation de l'utilisateur si elle change46 if ($location && $user->regionCode !== $location->regionCode) {47 $user->update([48 'pays' => $location->countryName,49 'region' => $location->regionName,50 'ville' => $location->cityName,51 'longitude' => $location->longitude,52 'latitude' => $location->latitude,53 'adresse_ip' => $location->ip,54 'regionCode' => $location->regionCode,55 'countryCode' => $location->countryCode,56 ]);57 }5859 // Redirection après connexion réussie60 return redirect()->route('app.home')->with('success', 'Salut, content de vous revoir !');61 }
@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
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
Il faut Se connecter ou Créer un compte pour participer à cette conversation.