IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

afficher des liens provenant de la table : erreur "BadMethodCallException"


Sujet :

Laravel PHP

  1. #1
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut afficher des liens provenant de la table : erreur "BadMethodCallException"
    Bonjour,

    j'apprends laravel. et dans le cours que je suis j'ai un problème, je voudrais juste afficher les liens provenant de ma table mysql de manière dynamique, je ne comprends pas d'où vient mon erreur.

    du coté de la table mysql aucun problème, la migration s'est faite,et après avoir créer un fichier seed , ça a bien remplis avec quelques données.



    J'ai cette erreur:

    BadMethodCallException
    Method App\Http\Controllers\ProdActionController::getHome does not exist.
    le controller app\Http\Controllers\ProdActionController.php :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    namespace App\Http\Controllers;
     
    use \Illuminate\Http\Request;
    use App\ProdAction;
     
        class ProdActionController extends Controller
        {
            public function getHome()
            {
                $actions = ProdAction::all();
                return view('home',['actions'=>$actions]);
            }
        }
    dans le fichier route (routes\web.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
    Route::group(['middleware'=>['web']],function(){
        Route::get('/',[
            'uses'=>'ProdActionController@getHome',
            'as'=>'home'
        ]);
     
    Route::group(['prefix' => 'do'], function () {
     
        Route::get('/{action}/{name?}', [
            'uses'=>'ProdActionController@getProdAction',
            'as' =>'Prodaction'
        ]);
    });
     
    });
    dans la vue :

    views\home.blade.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @foreach ($actions as $action)
                <a href="{{ route('Prodaction',['action'=>lcfirst($action->name)])}}">
                    {{$action->name}}
                  </a>
                @endforeach
    le model pas utilisé pour l'instant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    app\ProdAction.php
     
    namespace App;
     
    use Illuminate\Database\Eloquent\Model;
     
    class ProdAction extends Model
    {
        //
    }


    merci pour toute aide

    Cordialement

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    dans les versions récente de Laravel, on écrit plus les routes de cette façon.
    Essayez avec la nouvelle nomenclature pour voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     Route::get('/','ProdActionController@getHome')->name('home');

  3. #3
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    merci pour la réponse

    j'ai fait le changement

    j'ai remplacé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Route::get('/',[
            'uses'=>'ProdActionController@getHome',
            'as'=>'home'
        ]);
    par ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Route::get('/','ProdActionController@getHome')->name('home');
    mais cela me donne toujours la même erreur

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Pour être sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    composer dump-autoload

  5. #5
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    merci

    après un composer dump-autoload

    j'ai eu ce message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Ambiguous class resolution, "App\Http\Controllers\ProdActionController" was found in both "D:/wamp64/www/laravel-tuto/app\Http\Controllers\archive\ProdActionController_chap_1.php"
    j'ai donc supprimé le fichier que j'avais archivé

    ensuite après un autre composer dump-autoload

    je n'ai plus l'ancien message d'erreur mais celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
    Class 'App\Http\Controllers\ProdAction' not found

  6. #6
    Membre régulier Avatar de Zembla
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 94
    Points : 88
    Points
    88
    Par défaut
    j'avais oublié de mettre en haut du contrôleur l'appel à la class du modèle

    merci pour les infos

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Avec plaisir

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

Discussions similaires

  1. [FPDF] afficher des liens actifs
    Par fat dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/11/2010, 18h44
  2. Afficher des liens dans les erreurs vers les classes
    Par root76 dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 18/06/2009, 10h17
  3. [MySQL] afficher des données binaires d'une table mysql dans un tableau
    Par piscop dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/06/2007, 14h48
  4. Réponses: 2
    Dernier message: 21/02/2007, 11h22
  5. Réponses: 4
    Dernier message: 15/09/2006, 17h28

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