Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF2][SF] Menu - Drzewo kategorii w oparciu o tree nested
swiezak
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

Ostrzeżenie: (0%)
-----


Witam.
Mam problem z uzyskaniem menu w formie drzewa. Korzystam z Tree nested i otrzymuję kod błędu: "Error: Call to a member function childrenHierarchy() on a non-object".
Dopiero zaczynam przygode z SF2, dlatego prosze o wyrozumialosc.

W kontrolerze mam taki zapis:
  1. public function menucategoriesAction()
  2. {
  3. $em = $this->getDoctrine()->getEntityManager();
  4. $repo = $em->getRepository('MlFrontendBundle:Categories')->findAll();
  5. if (!$repo) {
  6. throw $this->createNotFoundException('Kategorie - brak rekordów!');
  7. }
  8.  
  9. $options = array(
  10. 'decorate' => true,
  11. 'rootOpen' => '<ul>',
  12. 'rootClose' => '</ul>',
  13. 'childOpen' => '<li>',
  14. 'childClose' => '</li>',
  15. 'nodeDecorator' => function($node) {
  16. return '<a href="/category/'.$node['slug'].'">'.$node[$field].'</a>';
  17. }
  18. );
  19. $htmlTree = $repo->childrenHierarchy(
  20. null, /* starting from root nodes */
  21. false, /* true: load all children, false: only direct */
  22. $options
  23. );
  24.  
  25. return $this->render('MlFrontendBundle:Default:menucategories.html.twig', array('htmlTree' => $htmlTree));
  26. }



Categories.php
  1. namespace Ml\FrontendBundle\Entity;
  2.  
  3. use Gedmo\Sluggable\Sluggable;
  4. use Gedmo\Mapping\Annotation as Gedmo;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6.  
  7. use Doctrine\ORM\Mapping as ORM;
  8.  
  9. /**
  10.  * Categories
  11.  *
  12.  * @Gedmo\Tree(type="nested")
  13.  * @ORM\Table(name="categories")
  14.  * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
  15.  */
  16. class Categories
  17. {
  18. /**
  19.   * @var integer
  20.   * @ORM\Column(name="id", type="integer")
  21.   * @ORM\Id
  22.   * @ORM\GeneratedValue(strategy="AUTO")
  23.   */
  24. private $id;
  25.  
  26. /**
  27.   * @var string
  28.   *
  29.   * @Assert\NotBlank()
  30.   * @ORM\Column(name="name", type="string", length=255)
  31.   */
  32. private $name;
  33.  
  34. /**
  35. * @var string $slug
  36. *
  37. * @Gedmo\Slug(fields={"name"})
  38. * @ORM\Column(length=255, unique=true)
  39. */
  40. private $slug;
  41.  
  42. /**
  43.   * @Gedmo\TreeLeft
  44.   * @ORM\Column(name="lft", type="integer")
  45.   */
  46. private $lft;
  47.  
  48. /**
  49.   * @Gedmo\TreeLevel
  50.   * @ORM\Column(name="lvl", type="integer")
  51.   */
  52. private $lvl;
  53.  
  54. /**
  55.   * @Gedmo\TreeRight
  56.   * @ORM\Column(name="rgt", type="integer")
  57.   */
  58. private $rgt;
  59.  
  60. /**
  61.   * @Gedmo\TreeRoot
  62.   * @ORM\Column(name="root", type="integer", nullable=true)
  63.   */
  64. private $root;
  65.  
  66. /**
  67.   * @Gedmo\TreeParent
  68.   * @ORM\ManyToOne(targetEntity="Categories", inversedBy="children")
  69.   * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
  70.   */
  71. private $parent;
  72.  
  73. /**
  74.   * @ORM\OneToMany(targetEntity="Categories", mappedBy="parent")
  75.   * @ORM\OrderBy({"lft" = "ASC"})
  76.   */
  77. private $children;
  78.  
  79. ...
  80. }


W plikach konfiguracyjnych mam odpowiednie wpisy, a mimo to nie dziala.


Czy ktos z Was mial stycznosc z tree nested i mi pomoze?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 04:46