Salut à tous !

J'ai suivi les formations CakePHP présent sur le site et j'ai un petit soucis en ce qui concerne ma page d'accueil.
Je ne sais pas quel contrôleur utiliser pour l'appeler.

Dans un premier temps j'ai gardé le contrôleur PagesController par défaut de CakePHP et j'ai juste modifié les routes dans config/routes.php de cette façon :

Router::connect('/accueil/', array('controller' => 'pages', 'action' => 'display', 'accueil'));

J'ai ensuite créé ma page d'accueil dans app/View/Pages/accueil.ctp

Je doute fort que cela ne soit pas la bonne méthode d'utilisation c'est pourquoi je demande votre avis à ce sujet.
Je rencontre également le même soucis en ce qui concerne les pages "A propos" et "Contact" de mon site.

Merci de votre aide,
Dans l'attente,

10 réponses


Salut!
pour ta page d'accueil

Router::connect('/', array('controller' => 'Pages', 'action' => 'display'));

Suffit normalement si tu as une view Pages et un fichier display

Appart si tu veux que ta pages d'accueil sois complètement différente des autres? Sans bannière et footer?

Et pour les pages A propos :

<a href="/CakePHP/aides/contact" >Contact</a> <a href="/CakePHP/aides/faq" >F.A.Q (Aide)</a>

Un controller Aides, un vue Aides et des fichier contact.ctp, faq.ctp..

Bonsoir oui ou avec son fichier ctp

'action' => 'accueil'

Ok donc c'est bien dans le contrôleur Pages qu'il faut la mettre (la page d'accueil) ?
Puis je cré un contrôleur AideController pour toutes les pages d'aides.

Bonjour,
non c'est pas forcement dans la controller pages, c'est ou tu veux.. tu peux faire un controller expres pour aussi , ce qui va définir la page d'accueil , c ce que tu vas mettres comme route pour "/"

bien cordialement

Antho

Oui pour / j'aimerais que cela affiche ma page d'accueil

Bonjour,
Mais '/' c'est la page d'accueil.... regarde le tuto sur le routeur , tu comprendras mieux le fonctionnement .

Bonjour barbuslex

Lorsque dans ton routing tu renseignes '/' , comme dans l'exemple suivant :

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

Cela signifie la racine de ton site, c'est à dire la page affichée lors du chargement de celui ci.
Tu peux donc appeler le controleur (controller) et l'action que tu souhaites, il n'y a aucune obligation que ce soit dans le controller "pages" , à partir du moment où tu as / dans ton routing, ce sera le controller et l'action que tu y as renseigné qui y est rattaché qui sera appelé.

Donc que tu mettes :

/* Exemple du routing par défaut de CakePHP */
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

ou bien

/* Exemple de routing personnalisé */
Router::connect('/', array('controller' => 'posts', 'action' => 'lasts'));

cela ne change absolument rien, tu peux choisir le controller et l'action que tu désires qui seront appelés lorsque quelqu'un se rendra sur ton site (www.tondomaine.tld).

Oui je m'étais rendu compte qu'il était possible de faire plusieurs possibilité au niveau du bootstrap.php
Mais y a t il une bonne pratique ou une méthode recommandé par cakephp pour ce type de pages (page d'accueil) ?

bonjour, les routes sont définies dans routes.php pas bootstrap.php.

En ce qui concerne la bonne façon de faire, tout dépend le cas, si la page d'accueil est une page dont l'action est déjà existante dans un controller, autant utiliser celle-ci.
Si cela doit être une page dédiée à l'accueil , on peut faire un controller dédié avec l'action qui va avec, si cela doit être un layout particulier, on peut le changer spécialement pour celle la etc..

CakePhp est assez souple, on peut faire ce pratiquement ce que l'on veut en surchargeant son comportement par defaut à peu près partout .

Bonjour.
barbuslex , antho07 t'a bien répondu.
Je te parles du fichier routes.php qui se situe dans le dossier config, et non du fichier bootstrap.php du même dossier.
Je ne crois d'ailleurs pas qu'il soit possible de définir un routing dans le fichier bootstrap.php et je n'en voit pas l'intérêt.