[Symfony]Récupérer les catégories
Salut j'ai encore un problème avec symfony... (dsl de flooder ton forum..)
En faite je refais jobeet en l'adaptant à mon blog.
Sur l'index je souhaite afficher les différentes catégories de mon blog.
L'erreur est :
Notice: Undefined variable: categories in C:\development\sfprojects\blog\apps\frontend\templates\layout.php on line 24****Warning: Invalid argument supplied for foreach() in C:\development\sfprojects\blog\apps\frontend\templates\layout.php on line 24
Alors ce que j'ai fais c'est une méthode getCategory que voici:
class BlogCategoryTable extends Doctrine_Table{ public function getCategory() { $q = $this->createQuery('c'); return $q->execute(); }}
et dans executeIndex je fais
$this->categories = Doctrine::getTable('BlogCategory')->getCategory();
Merci de ton aide ;)
Réponses apportées à cette discussion
C'est normal que tu aies cette erreur car tu essaie d'afficher la liste de tes catégories dans le layout.php alors que tu exécutes l'action index. Il faut donc que tu places la liste de tes catégories dans le template indexSuccess.php.
Si toutefois tu veux vraiment que tes catégories se trouvent dans ton layout (pour un menu je suppose), il faut que tu aies recours à un "component". Je t'invite à lire le symfony book à la recherche des "components". Tu verras c'est très simple à mettre en oeuvre ;)
Oui je tiens absolument à le mettre dans le layout.
Ok mais j'ai une erreur. Voici mon fichier components.class.php
<?php class categoryComponents extends sfComponents{ public function executeCategory() { $this->categories = Doctrine::getTable('BlogCategory')->getCategory(); }}
et dans mon layout j'ai rajouté :
Il me dit
The component does not exist: "category", "category".
Merci !
Tu as vidé le cache pour que la classe categoryComponents soit prise en compte ?
oui of course !
Mais je précise que je n'ai pas créer de module category j'ai mis mon fichier components.class.php dans l'action du module article !
C'est grave ?
En bidouillant j'ai réussi, grâce à la page d'erreur qui affiche toutes les informations !
Merci !:)
Bah dans ce cas oui c'est normal car si tu fais un "categoryComponents" dans le module article ça ne va pas. Il aurait fallu que ta classe soit nommée "articleComponents".
effectivement :p