Laravel 4

conflit de route dans mon projet

Avatar de Nchanjepaularmel
Nchanjepaularmel

bonsoir à la grande famille laravel j'ai un gros problème avec mon projet en faite j'ai 2 tables qui ont le même nombre de champ, les mêmes action (suprimer, modifier, ajouter) la première table s'appelle juge et la deuxieme section j'ai bien fait les distinction sur les routes, les vues, les formulaiers les problèmes c'est que une seule pages s'affiche et l'autre affiche une erreur 404 quand je bloque les route de l'autre page l'autre passe comment faire aidé moi merci

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Salut,

Je pense qu'il doit y avoir un problème dans les routes, mais sans voir de code on peut pas trop t'aider...

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

OK VOICI LES DEUX TABLE EN CODE Route::get('juge', 'jugecontroller@index'); Route::get('createj', 'jugecontroller@create'); Route::post('juge', 'jugecontroller@store'); Route::get('{juge}', 'jugecontroller@show');
Route::get('{juge}/edit', 'jugecontroller@edit'); Route::patch('{juge}', 'jugecontroller@update'); Route::delete('{juge}', 'jugecontroller@destroy');

Route::get('section', 'sectioncontroller@index'); Route::get('section', 'sectioncontroller@index'); Route::get('createse', 'sectioncontroller@create'); Route::post('section', 'sectioncontroller@store'); Route::get('{section}', 'sectioncontroller@show');
Route::get('{section}/edit', 'sectioncontroller@edit'); Route::patch('{section}', 'sectioncontroller@update'); Route::delete('{section}', 'sectioncontroller@destroy');

namespace App\Http\Controllers; use App\juge; use Illuminate\Http\Request; class jugecontroller extends Controller{ public function index(){ $juge = juge::all(); return view('juge', ['juge'=> $juge]);} public function create(){$juge = new juge(); return view('createj', compact('juge'));}

public function store(){$data= request()->validate(['name_juge'=>'required']); juge::create($data);return back();}

public function show(juge $juge){return view('showj', compact('juge'));}

public function edit(juge $juge){return view('editj', compact('juge'));}

public function update(juge $juge){ $data= request()->validate(['name_juge'=>'required']); $juge->update($data); return redirect($juge->id);} public function destroy(juge $juge){ $juge->delete(); return redirect('juge');}
}

class sectioncontroller extends Controller { public function create(){$section = new section(); return view('createse', compact('section'));}

public function index(){ $section = section::all(); return view('section', ['section'=> $section]);}

public function store(){$data= request()->validate(['name_section'=>'required']); section::create($data);return back();}

public function show(section $section){ return view('showse', compact('section'));}

public function edit(section $section){ return view('editse', compact('section'));}

public function update(section $section){ $datas= request()->validate(['name_section'=>'required']); $section->update($data); return redirect($section->id);}

public function destroy(section $section){ $section->delete(); return redirect('section');}
}

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Salut,

Il y a un souci dans les routes, par exemple quand on a ça :

Route::get('{juge}', 'jugecontroller@show');
...
Route::get('section', 'sectioncontroller@index');

La seconde route ne sera jamais atteinte parce que 'section' va être intercepté par la première route.

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

BONJOUR MONSIEUR MERCI POUR VOTRE PREMIER AIDE COMMENT FAIRE MAINTEMANT POUIR RESOUDRE CE PROBLEME

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

Route::get('juge', 'jugecontroller@index'); Route::get('section', 'sectioncontroller@index'); Route::post('juge', 'jugecontroller@store'); Route::post('section', 'sectioncontroller@store'); Route::get('createj', 'jugecontroller@create'); Route::get('createse', 'sectioncontroller@create'); Route::get('{juge}', 'jugecontroller@show');

Route::get('{juge}/edit', 'jugecontroller@edit');

Route::patch('{juge}', 'jugecontroller@update');

Route::delete('{juge}', 'jugecontroller@destroy'); Route::delete('{section}', 'sectioncontroller@destroy');

Route::get('{section}', 'sectioncontroller@show'); Route::get('{section}/edit', 'sectioncontroller@edit'); Route::patch('{section}', 'sectioncontroller@update');

VOICI OMMENT J'AI INTERVERTI L'ORDRE MAIS D'AUTRE PAGES DONNENT ET D'AUTRE NE PAS SURTOUT LES PAGES DE LA TABLE SECTION

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Salut,

Le plus simple serait d'utiliser deux ressources :

Route::resources([
    'juges' => 'jugecontroller',
    'sections' => 'sectioncontroller'
]);

Les routes seront créées de façon classique et il n'y aura aucun mélange.

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

BONJOUR MONSIEUR BETMOMO MERCI POUR L'AIDE SVP JE REDIGE LA SYNTAXE COMME CA MAINTENANT PAR EXEMPLE Route::get(['juge', 'jugecontroller@index']); C'EST COMME CA

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Salut,

La syntaxe que je t'ai mise avant génère déjà toutes les routes. Vérifie avec un php artisan route:list.

Posté il y a 3 ans
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Comme l'a dit bestmomo, ta route Route::get('{juge}', 'jugecontroller@show'); crée une erreur car quand tu met Route::get('{variable}', 'controller@action'); TOUTES tes routes correspondront à ça. Et en plus tu as plusieurs routes qui commencent par Route::methode('{variable}',

Tu peux dont soit mettre un prefixe sur tes routes où il n'y a qu'une variable genre Route::get('juge/{juge}', 'jugecontroller@show'); au lieu de Route::get('{juge}', 'jugecontroller@show'); mais dans ce cas, il faut que tu déclare ta route Route::get('{juge}', 'jugecontroller@show'); avant Route::get('juge', 'jugecontroller@index'); pour éviter les conflits. Et tu fait ça pour toutes tes routes qui commencent par une variable {variable}

Ou alors tu utilise la solution de bestmomo et tu supprime (ou au moins tu commente) toutes tes routes et tu met

Route::resources([
    'juges' => 'jugecontroller',
    'sections' => 'sectioncontroller'
]);

et tu fais un php artisan route:list en ligne de commande pour vérifier que les routes créées correspondent à tes routes précédentes.

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

OK MERCI POUR VOTRE AIDE

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

svp voici un formulaire le code

<input type="text" name="num_rg"placeholder='N° AD/ DP'>

Enregistre

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

voici le code

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Bonjour,

J'ai écrit cet article concernant les formulaires dynamiques. Il faut envoyer une requête en Ajax à chaque changement pour actualiser les données.

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

///@extends('layout') @section('content')

<input type="text" name="num_rg"placeholder='N° AD/ DP'>

Enregistre

Posté il y a 3 ans
Avatar de CinquièmeDimension
CinquièmeDimension

@Nchanjepaularmel ce forum utilise le moteur blade donc si tu poste du code, il sera interprété... C'est contraignant mais c'est comme ça. Il faut volontairement faire des fautes de syntaxe pour que ton code ne soit pas inetrprété

Posté il y a 3 ans
Avatar de KYoann
KYoann

@bestmomo,

Dans ton article, tu renvoi les données des villes directement, sans passer par un formatage Json,

return City::whereCountryId($id)->get();

N'a tu jamais eu de souci pour le traitement des données retourné du côté javascript ?

Alors que de mon côté j'utilise comme cela

return response()->json(City::whereCountryId($id)->get());
Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Salut,

Eloquent transforme automatiquement la réponse en JSON du coup je n'ai jamais eu de souci.

Posté il y a 3 ans
Avatar de KYoann
KYoann

Ok, y'a bien une subtilité alors, il faut que ce soit une collection d'objet eloquent :)

Merci pour ce tuyau !

Posté il y a 3 ans
Avatar de Nchanjepaularmel
Nchanjepaularmel

bonsoir bestmomocomment allez vous j'ai parcouru votre tuto mais j'ai un soucis : mon problème est le suivant j'ai deux table une audience et l'autre section et dans section il a y matière voioci le code `@csrf

@error('document')

comment evite les doublon lors de l'enregistement SVP une suit un debut sur laravel merci

Posté il y a 3 ans

Vous ne pouvez pas répondre à ce sujet.