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 :

Symfony 3 création d'un corebundle [3.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Par défaut Symfony 3 création d'un corebundle
    Bonjour à tous,
    je reviens vers vous car je bute depuis pas mal de temps sur ce projet

    Je vais vous expliquer mon soucis: objectif du projet créer un bundle qui permet de faire appel à d'autres bundle.

    1. j'ai déplacer le layout général dans :\wamp64\www\Symfony\src\OC\CoreBundle\Resources

    2. j'ai modifié les routes pour avoir accès par exemple au bundle advert

    \wamp64\www\Symfony\src\OC\CoreBundle\Resources\config


    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
    oc_core_homepage:
        path:     /
        defaults: { _controller: OCCoreBundle:Default:index }
     
     
    # src/OC/PlatformBundle/Resources/config/routing.yml
     
    oc_platform_home:
        path:      /platform/{page}
        defaults:
            _controller: OCPlatformBundle:Advert:index
            page:        1
        requirements:
            page: \d*
     
    oc_platform_form:
        path:      platform/advert/{id}
        defaults:
            _controller: OCPlatformBundle:Advert:index
        requirements:
            id: \d+


    J'ai par la suite modifié le fichier OCCoreBundle.php dans le répertoire \wamp64\www\Symfony\src\OC\CoreBundle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    namespace OC\CoreBundle;
     
    use Symfony\Component\HttpKernel\Bundle\Bundle;
     
     
    class OCCoreBundle extends Bundle
    {
     
     
     
    }
    J'ai une erreur
    Uncaught PHP Exception RuntimeException: "Controller "OC\PlatformBundle\Controller\AdvertController::indexAction()" requires that you provide a value for the "$page" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one." at D:\wamp64\www\Symfony\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Controller\ArgumentResolver.php line 78

  2. #2
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    Je ne comprends pas toute l'explication, mais l'erreur que tu obtiens est sur le controlleur AdvertController.php dans index action.
    Tu ne fournis pas le paramètre 'page' quand tu appelles ta route, donc soit tu dois le rentre optionel en ajoutant une deuxième url sans paramètre et en l'initialisant avec une valeur par défaut dans les paramètres dans ton indexAction.

    pour un meilleur support, tu peux poster le controller concerné

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Par défaut
    Bonjour,

    Voici le fichier du contrôleur:

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?php
    // src/OC/PlatformBundle/Controller/AdvertController.php
    namespace OC\PlatformBundle\Controller;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
    class AdvertController extends Controller
    {
      public function indexAction($page)
      {
        if ($page < 1) {
          throw new NotFoundHttpException('Page "'.$page.'" inexistante.');
        }
        // Notre liste d'annonce en dur
        $listAdverts = array(
          array(
            'title'   => 'Recherche développpeur Symfony',
            'id'      => 1,
            'author'  => 'Alexandre',
            'content' => 'Nous recherchons un développeur Symfony débutant sur Lyon. Blabla…',
            'date'    => new \Datetime()),
          array(
            'title'   => 'Mission de webmaster',
            'id'      => 2,
            'author'  => 'Hugo',
            'content' => 'Nous recherchons un webmaster capable de maintenir notre site internet. Blabla…',
            'date'    => new \Datetime()),
          array(
            'title'   => 'Offre de stage webdesigner',
            'id'      => 3,
            'author'  => 'Mathieu',
            'content' => 'Nous proposons un poste pour webdesigner. Blabla…',
            'date'    => new \Datetime())
        );
        return $this->render('OCPlatformBundle:Advert:index.html.twig', array(
          'listAdverts' => $listAdverts,
        ));
      }
      public function viewAction($id)
      {
        $advert = array(
          'title'   => 'Recherche développpeur Symfony',
          'id'      => $id,
          'author'  => 'Alexandre',
          'content' => 'Nous recherchons un développeur Symfony débutant sur Lyon. Blabla…',
          'date'    => new \Datetime()
        );
        return $this->render('OCPlatformBundle:Advert:view.html.twig', array(
          'advert' => $advert
        ));
      }
      public function addAction(Request $request)
      {
        // Si la requête est en POST, c'est que le visiteur a soumis le formulaire
        if ($request->isMethod('POST')) {
          $request->getSession()->getFlashBag()->add('notice', 'Annonce bien enregistrée.');
          // Puis on redirige vers la page de visualisation de cettte annonce
          return $this->redirectToRoute('oc_platform_view', array('id' => 5));
        }
        // Si on n'est pas en POST, alors on affiche le formulaire
        return $this->render('OCPlatformBundle:Advert:add.html.twig');
      }
      public function editAction($id, Request $request)
      {
        if ($request->isMethod('POST')) {
          $request->getSession()->getFlashBag()->add('notice', 'Annonce bien modifiée.');
          return $this->redirectToRoute('oc_platform_view', array('id' => 5));
        }
        $advert = array(
          'title'   => 'Recherche développpeur Symfony',
          'id'      => $id,
          'author'  => 'Alexandre',
          'content' => 'Nous recherchons un développeur Symfony débutant sur Lyon. Blabla…',
          'date'    => new \Datetime()
        );
        return $this->render('OCPlatformBundle:Advert:edit.html.twig', array(
          'advert' => $advert
        ));
      }
      public function deleteAction($id)
      {
        return $this->render('OCPlatformBundle:Advert:delete.html.twig');
      }
      public function menuAction($limit)
      {
        // On fixe en dur une liste ici, bien entendu par la suite on la récupérera depuis la BDD !
        $listAdverts = array(
          array('id' => 2, 'title' => 'Recherche développeur Symfony'),
          array('id' => 5, 'title' => 'Mission de webmaster'),
          array('id' => 9, 'title' => 'Offre de stage webdesigner')
        );
        return $this->render('OCPlatformBundle:Advert:menu.html.twig', array(
          // Tout l'intérêt est ici : le contrôleur passe les variables nécessaires au template !
          'listAdverts' => $listAdverts
        ));
      }
    }

  4. #4
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    et quand tu accèdes à ta route tu mets le paramètre 'page' ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2017
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2017
    Messages : 14
    Par défaut
    Non, je n'ai pas de paramètres à page quand je configure mes routes.

  6. #6
    Membre éprouvé Avatar de jisig
    Homme Profil pro
    null
    Inscrit en
    Avril 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Indonésie

    Informations professionnelles :
    Activité : null

    Informations forums :
    Inscription : Avril 2014
    Messages : 146
    Par défaut
    Citation Envoyé par Cln66 Voir le message
    Non, je n'ai pas de paramètres à page quand je configure mes routes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    oc_platform_home:
        path:      /platform/{page}

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

Discussions similaires

  1. [1.x] Installation symfony et création premier projet
    Par vodasan dans le forum Débuter
    Réponses: 3
    Dernier message: 16/12/2010, 09h49
  2. netbeans et symfony, création d'un nouveau projet
    Par thor76160 dans le forum NetBeans
    Réponses: 1
    Dernier message: 26/10/2010, 15h42
  3. [1.x] [Jobeet] création d'un site Symfony + netbeans
    Par thor76160 dans le forum Débuter
    Réponses: 22
    Dernier message: 19/10/2010, 11h38
  4. Création d'un panier de produit avec Symfony
    Par Raiden972 dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 09/06/2010, 19h05
  5. [1.x] création de pdf avec symfony
    Par wiemesti dans le forum Symfony
    Réponses: 2
    Dernier message: 29/09/2009, 11h33

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