Witam

Mam nadzieje, ze bedziecie mi w stanie pomoc. Problem dotyczy, raczej poczatkujacego, zagadnienia z Sonaty. Otoz probuje stworzyc relacje one to many pomiedzy dwoma klasami, cos na wzor prostego przykladu Posta i Komentarzy. Tylko u mnie jest to Car i CarRevision.
Klasa Car ma swoje id, opis itp. CarRevision ma zadeklarowana relacje do Car przez car_id.

Teraz probuje osiagnac to co stoi tutaj w dokumentacji w punkcie 4.6 Create Child Admins
http://sonata-project.org/bundles/admin/2-...chitecture.html
Czyli aby pod przykladowym linkiem /car/{id}/carrevision/list miec spis rewizji dla danego car_id.

Wg dokumentacji, nalezy a) dodac metode AddChild w konfiguracji

  1. <service id="sonata.news.admin.post" class="Sonata\NewsBundle\Admin\PostAdmin">
  2. ...
  3.  
  4. <call method="addChild">
  5. <argument type="service" id="sonata.news.admin.comment" />
  6. </call>
  7. </service>


oraz cool.gif dodac parentAssociationMapping w klasie admin obiektu, ktory ma byc owym dzieckiem

  1. namespace Sonata\NewsBundle\Admin;
  2.  
  3. ...
  4.  
  5. class CommentAdmin extends Admin
  6. {
  7. protected $parentAssociationMapping = 'post';
  8. }


U mnie wyglada to tak

Config
  1.  
  2. <container xmlns="http://symfony.com/schema/dic/services"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://symfony.com/schema/dic/services <a href="http://symfony.com/schema/dic/services/services-1.0.xsd&quot;&gt;" target="_blank">http://symfony.com/schema/dic/services/ser...0.xsd"></a>
  5.  
  6. <services>
  7. <service id="sonata.admin.car" class="Projekt\ComparisonBundle\Admin\CarAdmin">
  8. <tag name="sonata.admin" manager_type="orm" group="Content" label="Cars" />
  9. <argument />
  10. <argument>Projekt\Comparison\Car\Car</argument>
  11. <argument>ProjektComparisonBundle:Car</argument>
  12.  
  13. <call method="addChild">
  14. <argument type="service" id="sonata.admin.carrevision" />
  15. </call>
  16. </service>
  17.  
  18. <service id="sonata.admin.carrevision" class="Projekt\ComparisonBundle\Admin\CarRevisionAdmin">
  19. <tag name="sonata.admin" manager_type="orm" group="Revisions" label="Cars" />
  20. <argument />
  21. <argument>Projekt\Comparison\Car\CarRevision</argument>
  22. <argument>ProjektComparisonBundle:CarRevision</argument>
  23. </service>
  24. </services>
  25.  
  26. </container>


Klasa admin
  1.  
  2. namespace Projekt\ComparisonBundle\Admin;
  3.  
  4. use Sonata\AdminBundle\Admin\Admin;
  5. use Sonata\AdminBundle\Form\FormMapper;
  6. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  7. use Sonata\AdminBundle\Datagrid\ListMapper;
  8.  
  9. class CarRevisionAdmin extends Admin
  10. {
  11. protected $parentAssociationMapping = 'car';
  12. }
  13.  


I teraz nie rozumiem, czy to juz jest rzekomo koniec konfiguracji? Przy takim kodzie i konfiguracji jak powyzej, dostaje blad o braku w klasie Admin zmiennych baseRouteName i baseRoutePattern. Te z za bardzo nie wiem jak ustawic dla 'dziecka'. I czemu wogole u mnie system tego sie domaga.
URL /projekt/comparison/car/1/carrevision/list pokazuje mi 'no route found'.

Czego to brakuje albo co jest zle? Z gory dzieki za pomoc