Bonjour,

Je n'arrive pas à faire une route à partir de la racine du projet.

J'ai un créé un projet sous symfony3

monprojet.dev et je souhaite créer une page d'accueil avec diverses informations (tout ce qu'il y a de plus classique).

Comme je prévoie plusieurs services sur ce site, j'ai créé un premier bundle mainBundle avec le routing défini comme ceci :

monprojet/app/config/routing.yml
p_main:
    resource: "@PMainBundle/Resources/config/routing.yml"
    prefix:   /

Dans mon mainBundle, j'ai cette route :

 /src/P/mainBundle/Ressources/config/routing.yml
p_main_accueil:
    path:     /
    defaults: 
        _controller: PMainBundle:Main:index

qui va donc appeler le contrôleur mainController.php :

<?php
namespace P\MainBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class MainController extends Controller
{
    public function indexAction()
    {
        return $this->render('PMainBundle::index.html.twig');
    }
}

Ce template retourne pour l'instant que du HTML. Je débute totalement en dev symfony et MVC. Ce sera déjà bien aujourd'hui si j'arrive à afficher un truc simple.
J'ai par exemple un autre bundle qui fonctionne avec la définition du routing comme ceci :

p_recette:
    resource: "@PRecetteBundle/Resources/config/routing.yml"
    prefix:   /recette

Et il marche bien quand je pointe avec l'url http://monprojet.dev/recette/. Pour info, je travaille avec vagrant homstead et ma configuration de site ressemble à ça :

- map: monprojet.dev
      to: /home/vagrant/Code/monprojet/web
      type: symfony

Ce que je souhaite obtenir :

J'aimerais que cela m'affiche ma page d'accueil sans devoir préfixer ma route avec quelque chose de la forme :

http://monprojet.dev/mainpage/

mais directement :

http://monprojet.dev/

Ce que j'obtiens

Quand je vais à l'url http://monprojet.dev/ , il m'affiche un Access denied.

Je ne vois pas où je fais erreur ? Peut-on directement pointer vers la racine depuis un bundle.
Ca parait si simple que je dois passer à côté d'un truc bête ;-)

Merci par avance pour vos éclairages.

7 réponses


longh
Auteur
Réponse acceptée

Bonjour lalwende et Lartak. Juste pour vous dire que j'ai identifié mon problème. Je ne l'ai pas encore résolu mais cela vient de ma machine Vagrant sur laquelle je fais tourner une VM homestead de laravel.
Il semble qu'il y ait des problème au niveau de l'interprétation du slash final dans l'url. J'ai essayé mon projet directement sur une machine lamp en direct et tout roule. Je partage ma piste de solution au cas où quelqu'un aurait le même problème que moi :
Avec cette modif j'ai mes url de la forme http://monSite.dev/web/app_dev.php qui marche. La même url avec le slash final me fait toujours un beau Access denied..
Affaire à suivre. Et encore merci

Si je peux me permettre avec mes petites connaissances. Ton 'access denied' est pour moi lié aux roles. Il n'est pas en train de dire route not found.

longh
Auteur

Merci pour ta réponse lalwende.
Je n'ai pas vu de rôles à gérer avec l'installation de base de symfony. Il me semblait qu'on commence à parler de rôles quand on installe par exemple un bundle comme FOSBundle non ?
Je cherche aussi du coôté du fichier de conf security.yml mais il indique bien qu'en dev la security est à false.
Je continue à chercher.
En tout cas merci pour la piste.

C'est une bonne initiative. Si tu n'as pas encore mis en place un systéme de role, c'est que c'est la config du firewall qui pose problème. Si tu me transmets tes fichiers de conf - config/security et routing ainsi que controller/vue je peux peut etre t'aider. Il me faudrait aussi un récap plus précis de ton problème mais sans interférer avec ce que tu crois être le probleme. Car là tu estimes déjà avoir identifier le problème et tu cherches peut etre au mauvais endroit. N'hésites pas à poster du code au complet et non des portions ici, sauf la conf de ta bdd...Bonne recherche

Bonjour.

N'hésites pas à poster du code au complet et non des portions ici

Ceci est un mauvais conseil, c'est assez lourd pour tout le monde de devoir lire une centaine de lignes de code, alors qu'une dizaine est largement suffisante.
Donc soit il sait quelle partie de code d'une page peut être utile et la poste ici, ou alors il utilise un service externe et nous donnes le lien pour visualiser son code.

Ok je comprends, tu as raison Lartak. Merci pour ton intervention

longh
Auteur

Merci de votre soutien , je vous poste le tout dès que possible cette semaine :-)