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

1@extends("layouts.auth.template_auth")
2@php
3 $title = "Login :: ".env("APP_NAME");
4 $title2 = "Login";
5@endphp
6@push("body")
7 <body>
8@endpush
9@section("container")
10
11@livewire("front.auth.login",["page"=>request()->fullUrl()])
12
13
14@endsection
1@extends("layouts.auth.template_auth")
2@php
3 $title = "Login :: ".env("APP_NAME");
4 $title2 = "Login";
5@endphp
6@push("body")
7 <body>
8@endpush
9@section("container")
10
11@livewire("front.auth.login",["page"=>request()->fullUrl()])
12
13
14@endsection

Livewire file

1
2<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 @enderror
8 </div>
9 <div>
10 <input type="password" wire:model="password">
11 @error('password')
12 <p style="color: red">{{ $message }}</p>
13 @enderror
14 </div>
15 <div>
16 <button type="submit">Login</button>
17 </div>
18</form>
1
2<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 @enderror
8 </div>
9 <div>
10 <input type="password" wire:model="password">
11 @error('password')
12 <p style="color: red">{{ $message }}</p>
13 @enderror
14 </div>
15 <div>
16 <button type="submit">Login</button>
17 </div>
18</form>

Livewire controller

1public function login()
2 {
3 // Validation des champs requis
4 $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 ]);
11
12 // Déterminer le type de connexion (email ou nom d'utilisateur)
13 $loginType = filter_var($this->email_or_username, FILTER_VALIDATE_EMAIL) ? 'email' : 'name';
14
15 $credentials = [
16 $loginType => $this->email_or_username,
17 'password' => $this->password,
18 ];
19
20 // Obtenir les informations IP et de localisation
21
22 $setting = Setting::where('id', 1)->first();
23
24 if($setting->online_mode == "non")
25 {
26 $ip_address = $_SERVER['REMOTE_ADDR'];
27 $location = Location::get('129.0.204.227');
28 }
29 else
30 {
31 $ip_address = request()->ip();
32 $location = Location::get($ip_address);
33 }
34
35 // Vérification des informations d'identification
36 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 passe
39 return;
40 }
41
42 // Récupération de l'utilisateur connecté
43 $user = Auth::user();
44
45 // Mettre à jour la localisation de l'utilisateur si elle change
46 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 }
58
59 // Redirection après connexion réussie
60 return redirect()->route('app.home')->with('success', 'Salut, content de vous revoir !');
61 }
1public function login()
2 {
3 // Validation des champs requis
4 $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 ]);
11
12 // Déterminer le type de connexion (email ou nom d'utilisateur)
13 $loginType = filter_var($this->email_or_username, FILTER_VALIDATE_EMAIL) ? 'email' : 'name';
14
15 $credentials = [
16 $loginType => $this->email_or_username,
17 'password' => $this->password,
18 ];
19
20 // Obtenir les informations IP et de localisation
21
22 $setting = Setting::where('id', 1)->first();
23
24 if($setting->online_mode == "non")
25 {
26 $ip_address = $_SERVER['REMOTE_ADDR'];
27 $location = Location::get('129.0.204.227');
28 }
29 else
30 {
31 $ip_address = request()->ip();
32 $location = Location::get($ip_address);
33 }
34
35 // Vérification des informations d'identification
36 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 passe
39 return;
40 }
41
42 // Récupération de l'utilisateur connecté
43 $user = Auth::user();
44
45 // Mettre à jour la localisation de l'utilisateur si elle change
46 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 }
58
59 // Redirection après connexion réussie
60 return redirect()->route('app.home')->with('success', 'Salut, content de vous revoir !');
61 }
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

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

mr_wilfried
a répondu

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

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

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

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

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

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer ce sujet ? Cette action est irréversible.