1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut Laravel5 NotfoundHttpException Je n'y arrive pas

    Bonjour à tous, voila lorsque j'essaie d'utiliser la fonction update de mon controller je reçois un message d'erreur NotFoundHtppException. Alors j'ai essayé de chercher sur internet, je vois a peu prés de quoi il s'agit mais je n'arrive pas a le remplacer sur monde code... Pouvez vous m'aider ?

    Ici c'est mon controlleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    class testing extends Controller
    {
        public function index()
        {
          $user = T_collaborateurs_table::all();
          return view ("read", compact("user"));
        }
        public function create()
        {
          return view("create");
        }
     
        public function store(Request $Request)
        {
          T_collaborateurs_table::create(Request::all());
     
          return redirect("index");
        }
     
        public function show($id)
        {
          $user=T_collaborateurs_table::find($id);
          return view("show", compact("user"));
        }
     
        public function edit($id)
        {
          $user=T_collaborateurs_table::find($id);
          return view("update", compact("user"));
        }
     
        public function update(Request $Request, $id)
        {
          $user = T_collaborateurs_table::find($id);
          $user->update(Request::all());
     
          return redirect("index");
        }
    }
    Ici mes routes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Route::get("create", "testing@create");
    Route::post("store", "testing@store");
    Route::get("index", "testing@index");
    Route::get("show/{id}", "testing@show");
    Route::get("edit/{id}", "testing@edit");
    Route::patch("update/{id}", "testing@update");
    et ici ma vue update.blade.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
        <body>
     
    {{Form::model($user, ['method'=>'patch', 'action'=>['testing@update',$user->id]])}}
     
    {{Form::label('Id_TCa', 'ID')}}
    {{Form::text('Id_TCa')}}
    {{Form::label('Collaborateur_TCa', 'collab')}}
    {{Form::text('Collaborateur_TCa')}}
    {{Form::label('Responsable_TCa', 'resp')}}
    {{Form::text('Responsable_TCa')}}
     
     
    {{Form::submit("update")}}
    {{Form::close()}}
     
        </body>
    j'ai aussi un screen de ma route:list

    Nom : SOF.jpg
Affichages : 31
Taille : 178,8 Ko

    Voila merci à tous ceux qui m'auront lu ou auront pris du temps pour me répondre, bonne soirée.

  2. #2
    Membre éclairé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2011
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2011
    Messages : 404
    Points : 709
    Points
    709

    Par défaut

    Salut, sûrement parce que vos contrôleurs n'ont pas la bonne syntaxe.. Je ne sais pas quelle version vous utilisez mais pour votre cas ci avoir un fichier TestingController.php dans App\Http\Controllers et avoir un code comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    namespace App\Http\Controllers;
    use App\Http\Controllers\Controller;
     
    class TestingController extends Controller
    {
       //
    }
    Vous devez charger aussi votre modèle T_collaborateurs_table.
    Bon Apparemment il semble que vous n'avez pas lu un tuto sur LARAVEL, partie contrôleurs https://laravel.com/docs/5.4/controllers par exemple.
    Le bienfait n'est jamais perdu

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    Bonjour Willy_k j'utilise laravel 5

    Alors si mon controleur a bien ceci c'est juste que ne l'ai pas utilisé pour ne pas surcharger la page mais je le mets ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
     
    namespace App\Http\Controllers;
     
    use Request;
    use App\Http\Requests;
    use App\T_collaborateurs_table;
    use App\Http\Controllers\Controller;
    Mon modèle est aussi bien enregistré, en fait il y a juste la partie update qui pèche un peu le reste marche très bien.
    Merci pour la doc, j'en ai dèjà lu une partie depuis 3 semaines maintenant, mais j'essaierai de voir si je n'y trouve pas quelques réponses en plus.

    Merci pour votre temps.

  4. #4
    Membre éclairé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2011
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2011
    Messages : 404
    Points : 709
    Points
    709

    Par défaut

    Ha autant pour moi, je ne savais pas que pour ce genre d'opérations Laravel autorisait des classes sans le suffixe Controller(puisque dans votre cas, c'est seulement le update qui semble foirer), faut dire que je n'y ai pas touché depuis longtemps et j'ai zappé (par inattention) le début de votre message.

    Regardez ici si vous ne l'avez pas encore fait, peut être que vous aurez un début de solution https://laracasts.com/discuss/channe...-route-problem

    PS: Faudrait peut être suivre les conventions de nommage de Laravel qui utilise le "CamelCase" pour ses classes, histoire d'être plus "consistant"
    Le bienfait n'est jamais perdu

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    Merci Willy j'irai jeter un oeil cela peut être la solution, mais la il se fait tard, je suis dessus depuis 8 heures

    Bonne soirée à vous

  6. #6
    Membre éclairé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    juin 2011
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2011
    Messages : 404
    Points : 709
    Points
    709

    Par défaut

    Bonne soirée à vous, faut dire aussi que vous êtes à +2heures actuellement de mon fuseau horaire.
    J'espère que ça sera la solution ou une piste pour la solution.
    Le bienfait n'est jamais perdu

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    Bonjour willy_k, malheureusement cela n'a pas marché, mais en tout cas merci pour votre précieuse aide, c'est sympa d'essayer.
    Je vais essayer de me creuser un peu plus les méninges.
    Bonne journée!

    PS: Il est vrai que le CamelCase est important j'y ferai attention!

  8. #8
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 480
    Points : 10 184
    Points
    10 184

    Par défaut

    Bonjour,

    En passant par la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     public function update(Request $Request, $id)
        {
          $user = T_collaborateurs_table::find($id);
          //$user->update(Request::all());
            $user->update($Request->all());
     
     
          return redirect("index");
        }

  9. #9
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    Bonjour MaitrePylos, avec -> j'ai une "FatalThrowableError" "Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ')'"

  10. #10
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 480
    Points : 10 184
    Points
    10 184

    Par défaut

    Je peux avoir le code complet ? du controller.

  11. #11
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    Le voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?php
     
    namespace App\Http\Controllers;
     
    use Request;
    use App\Http\Requests;
    use App\T_collaborateurs_table;
    use App\Http\Controllers\Controller;
     
    class testing extends Controller
    {
        public function index()
        {
          $user = T_collaborateurs_table::all();
          return view ("read", compact("user"));
        }
        public function create()
        {
          return view("create");
        }
     
        public function store(Request $Request)
        {
          T_collaborateurs_table::create(Request::all());
     
          return redirect("index");
        }
     
        public function show($id)
        {
          $user=T_collaborateurs_table::find($id);
          return view("show", compact("user"));
        }
     
        public function edit($id)
        {
          $user=T_collaborateurs_table::find($id);
          return view("update", compact("user"));
        }
     
        public function update(Request $Request, $id)
        {
          $user = T_collaborateurs_table::find($id);
          $user->update(Request::all());
     
          return redirect("index");
        }
    }

  12. #12
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 480
    Points : 10 184
    Points
    10 184

    Par défaut

    test ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?php
     
    namespace App\Http\Controllers;
     
    use Illuminate\Http\Request;
    use App\T_collaborateurs_table;
     
     
    class testing extends Controller
    {
        public function index()
        {
            $user = T_collaborateurs_table::all();
            return view("read", compact("user"));
        }
     
        public function create()
        {
            return view("create");
        }
     
        public function store(Request $request)
        {
            T_collaborateurs_table::create($request->all());
     
            return redirect("index");
        }
     
        public function show($id)
        {
            $user = T_collaborateurs_table::find($id);
            return view("show", compact("user"));
        }
     
        public function edit($id)
        {
            $user = T_collaborateurs_table::find($id);
            return view("update", compact("user"));
        }
     
        public function update(Request $request, $id)
        {
            $user = T_collaborateurs_table::find($id);
            $user->update($request->all());
     
            return redirect("index");
        }
    }

  13. #13
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    j'ai cela en reponse "Missing argument 2 for App\Http\Controllers\testing::update()"

  14. #14
    Responsable Livres

    Avatar de MaitrePylos
    Homme Profil pro
    DBA & Dev PHP
    Inscrit en
    juin 2005
    Messages
    4 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA & Dev PHP
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 4 480
    Points : 10 184
    Points
    10 184

    Par défaut

    Hé bien on avance.

    Premier problème, tu ne respectes pas les convention de Laravel, je te conseilles un bon IDE (PHPStorm ou Netbeans...ou autre).

    Pour ton souci de maintenant, comme te l'as dit Bestmomo dans l'autre Forum, tu ne passe pas l'id dans ton url de départ.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Route::patch("update/{id}", "testing@update");
    Il faut donc retourner à la vue qui va envoyer vers cette route, pour voir pq il n' y a pas de ID, en passant je changerais le patch pour un post.

  15. #15
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2017
    Messages : 8
    Points : 3
    Points
    3

    Par défaut

    Bon j'ai enfin trouvé, comme je suis un nigaud j'ai utilisé le même id que dans ma fonction show ou edit, mais pour la function update je dois utiliser l'id de ma database....
    Je laisse ici mon code corrigé au cas ou certains en auraient besoin.

    ici la fonction de mon controlleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        public function update(Request $Request)
        {
     
            $id = Input::get('Id_TCa');
            $user = T_collaborateurs_table::find($id);
            $user->update(Request::all());
     
     
     
            return redirect("index");
        }
    ici le code de ma route


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Route::patch("update", "testing@update");
    et ici le code de ma vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    {{ Form::model($user, ['method'=>'POST', 'action'=>['testing@update',$user->id]]) }}
    {{ method_field('PATCH') }}
    {{ Form::hidden('id', $user->id) }}
     
    {{Form::label('Id_TCa', 'ID')}}
    {{Form::text('Id_TCa')}}
    {{Form::label('Collaborateur_TCa', 'collab')}}
    {{Form::text('Collaborateur_TCa')}}
    {{Form::label('Responsable_TCa', 'resp')}}
    {{Form::text('Responsable_TCa')}}
     
     
    {{Form::submit("update")}}
    {{Form::close()}}
    Merci pour l'aide en tout cas c'était vraiment cool de votre part, je change le sujet en résolu. Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Kylix 3] Je n'arrive pas à utiliser MySQL
    Par usebob dans le forum EDI
    Réponses: 4
    Dernier message: 15/04/2005, 11h18
  2. problème que je n'arrive pas à résoudre de façon récursive
    Par miam dans le forum Général Algorithmique
    Réponses: 9
    Dernier message: 31/07/2004, 12h21
  3. [Function] N'arrive pas à sortir
    Par bouboussjunior dans le forum ASP
    Réponses: 3
    Dernier message: 14/06/2004, 17h36
  4. Je n'arrive pas à détruire une fenêtre
    Par CORREGE Frédéric dans le forum MFC
    Réponses: 6
    Dernier message: 22/02/2004, 21h28
  5. j'arrive pas a arreter mon thread d'arriere-plan
    Par ms91fr dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2003, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo