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

Symfony PHP Discussion :

Tuto symfony 2 de djayp : erreur controller [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut Tuto symfony 2 de djayp : erreur controller
    Bonjour,

    Partie IV-D. Afficher un premier message donne l'erreur suivante :
    Controller "MyApp\FilmothequeBundle\Controller\DefaultController::indexAction()" requires that you provide a value for the "$name" argument (because there is no default value or because there is a non optional argument after this one).

    Dans le tuto la fonction indexAction() ne possède pas d'argument. Chez moi si : indexAction($name).

    Débutant Symfony et à ce stade des informations sur sa structure, je n'arrive pas à résoudre ce problème.

    Merci du coup de main.
    Intuitu Personae

  2. #2
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Le controller que tu as est le contrôleur qui est généré en même temps que ton bundle.

    C'est un point de départ pour ton controlleur, il faut que tu l'adapte et que tu le modifie en fonction de ce que tu as besoin de faire.

    Donc si tu ne veux pas utiliser le $name, tu l’enlèves et ça fonctionnera

  3. #3
    Nouveau membre du Club Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Merci pour ton aide Avrel.

    Lorsque j'écrivais que je n'arrivais pas à résoudre le problème, ta solution faisait partie de mes tentatives. Et, désolé, mais cela ne fonctionne pas :
    Variable "name" does not exist in MyAppFilmothequeBundle Default:index.html.twig at line 1.
    Intuitu Personae

  4. #4
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Le première chose a faire quand tu développe c'est d'apprendre a lire et a comprendre les messages d'erreur.

    Ici par exemple il te dis que tu fais appelle a la variable name dans ton fichier index.html.twig.
    C'est donc vers celui-ci que tu dois te tourner pour corriger cette erreur.

    ce fichier se trouve dans MyApp/FilmothequeBundle/Resources/views/Default/index.html.twig

    Tu devrais avoir une ligne du type .

    Enlève la et tu n'auras plus de problème.

  5. #5
    Nouveau membre du Club Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Tu devrais avoir une ligne du type
    Code :
    {{name}}
    Enlève la et tu n'auras plus de problème.
    Ce fichier était vide au départ. J'ai donc suivi le tuto :
    • Puis ouvrez le fichier Symfony2/src/MyApp/FilmothequeBundle/Resources/views/index.html.twig.
    • Et insérez le texte suivant :

    Il n'ya donc rien d'autre.
    Intuitu Personae

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Salut,

    Ce sera beaucoup plus facile de t'aider si tu nous montre les fichiers en questions.

    Merci.

  7. #7
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Dans ce cas la vérifie que c'est le bon template que tu appelle depuis ton controller

  8. #8
    Nouveau membre du Club Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Ce sont ceux du tuto : http://j-place.developpez.com/tutori...avec-symfony2/.
    Mais bon, les voici dans l'ordre :

    - Symfony2/app/AppKernel.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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
     
    use Symfony\Component\HttpKernel\Kernel;
    use Symfony\Component\Config\Loader\LoaderInterface;
     
    class AppKernel extends Kernel
    {
        public function registerBundles()
        {
            $bundles = array(
                new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
                new Symfony\Bundle\SecurityBundle\SecurityBundle(),
                new Symfony\Bundle\TwigBundle\TwigBundle(),
                new Symfony\Bundle\MonologBundle\MonologBundle(),
                new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
                new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
                new Symfony\Bundle\AsseticBundle\AsseticBundle(),
                new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
                new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
                new MyApp\FilmothequeBundle\MyAppFilmothequeBundle(),
            );
     
            if (in_array($this->getEnvironment(), array('dev', 'test'))) {
                $bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
                $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
                $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
                $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
            }
     
            return $bundles;
        }
     
        public function registerContainerConfiguration(LoaderInterface $loader)
        {
            $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
        }
    }
    [B- ]Symfony2/app/config/routing.yml[/B]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MyAppFilmothequeBundle:
        resource: "@MyAppFilmothequeBundle/Resources/config/routing.yml"
        prefix:   /myapp
     
    # Internal routing configuration to handle ESI
    #_internal:
    #   resource: "@FrameworkBundle/Resources/config/routing/internal.xml"
    #   prefix:   /_internal
    - Symfony2/src/MyApp/FilmothequeBundle/Controller/DefaultController.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
    <?php
     
    namespace MyApp\FilmothequeBundle\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
     
    class DefaultController extends Controller
    {
       public function indexAction($name)
       {
          $message = 'Mon premier message';
     
          return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Default:index.html.twig',
             array('message' => $message) );
       }
    }
    - Symfony2/src/MyApp/FilmothequeBundle/Resources/views/index.html.twig
    - Symfony2/src/MyApp/FilmothequeBundle/Resources/config/routing.yml.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MyAppFilmothequeBundle_homepage:
        pattern:  /hello/{name}
        defaults: { _controller: MyAppFilmothequeBundle:Default:index }
     
    myapp_accueil:
        pattern: /
        defaults: { _controller: MyAppFilmothequeBundle:Default:index }
    Voilou
    Intuitu Personae

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Et l'url que tu consulte est de la form :
    app_dev.php/hello/quelquechose
    ?

    Parce que si tu vas sur

    app_dev.php/
    , c'est normal que le messsage d'erreur te dis de donner une valeur à $name.

    Sinon tu as 2 route qui pointe sur la même action...

  10. #10
    Membre habitué Avatar de Avrel
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2010
    Messages : 118
    Points : 177
    Points
    177
    Par défaut
    Regarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    return $this->container->get('templating')->renderResponse('MyAppFilmothequeBundle:Default:index.html.twig',
             array('message' => $message) );
    Ici tu demande d'afficher Le fichier index.html.twig prensent dans le dossier
    /src/MyApp/FilmothequeBundle/Resources/views/Default/index.html.twig

    Or ton fichier twig est situé là :
    /src/MyApp/FilmothequeBundle/Resources/views/index.html.twig

    Donc déplace le dans le dossier Default

  11. #11
    Nouveau membre du Club Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par Avrel Voir le message
    Donc déplace le dans le dossier Default
    C'est OK

    Merci à vous deux.
    Intuitu Personae

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

Discussions similaires

  1. Tuto création d'un panier : erreurs
    Par mikael2235 dans le forum E-Commerce
    Réponses: 0
    Dernier message: 20/07/2009, 14h51
  2. Réponses: 4
    Dernier message: 27/01/2009, 17h03
  3. Erreur Controle.dll dans mon application
    Par saliouseck dans le forum Access
    Réponses: 0
    Dernier message: 11/04/2008, 14h18
  4. Erreur: Control " has no parent windows
    Par bob8181_2000 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/10/2003, 20h39

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