Laravel 4

conflit de route dans mon projet

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    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

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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...

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    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');}
    }

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

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

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    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

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    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

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de CinquièmeDimension
    Membre depuis :
    18/04/2019
    Messages :
    58

    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.

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    OK MERCI POUR VOTRE AIDE

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    svp voici un formulaire le code

    ENROLEMENT DES DOSSIERS













    comment faire un filtre sur le choix des sections c'est à dire lors que le selectionne la section qu"il me liste les matiere lié à cette section
    svp

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

    voici le code

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    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.

  • Avatar de Nchanjepaularmel
    Membre depuis :
    23/08/2019
    Messages :
    13

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

    ENROLEMENT DES DOSSIERS













    @endsection////
  • Avatar de CinquièmeDimension
    Membre depuis :
    18/04/2019
    Messages :
    58

    @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é

  • Avatar de KYoann
    Membre depuis :
    11/02/2019
    Messages :
    60

    @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());
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2632

    Salut,

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

  • Avatar de KYoann
    Membre depuis :
    11/02/2019
    Messages :
    60

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

    Merci pour ce tuyau !

Vous ne pouvez pas répondre à ce sujet.