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.htmlCzyli aby pod przykladowym linkiem /car/{id}/carrevision/list miec spis rewizji dla danego car_id.
Wg dokumentacji, nalezy a) dodac metode AddChild w konfiguracji
<service id="sonata.news.admin.post" class="Sonata\NewsBundle\Admin\PostAdmin">
...
<call method="addChild">
<argument type="service" id="sonata.news.admin.comment" />
</call>
</service>
oraz

dodac parentAssociationMapping w klasie admin obiektu, ktory ma byc owym dzieckiem
namespace Sonata\NewsBundle\Admin;
...
class CommentAdmin extends Admin
{
protected $parentAssociationMapping = 'post';
}
U mnie wyglada to tak
Config
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services <a href="http://symfony.com/schema/dic/services/services-1.0.xsd">" target="_blank">http://symfony.com/schema/dic/services/ser...0.xsd"></a>
<services>
<service id="sonata.admin.car" class="Projekt\ComparisonBundle\Admin\CarAdmin">
<tag name="sonata.admin" manager_type="orm" group="Content" label="Cars" />
<argument />
<argument>Projekt\Comparison\Car\Car</argument>
<argument>ProjektComparisonBundle:Car</argument>
<call method="addChild">
<argument type="service" id="sonata.admin.carrevision" />
</call>
</service>
<service id="sonata.admin.carrevision" class="Projekt\ComparisonBundle\Admin\CarRevisionAdmin">
<tag name="sonata.admin" manager_type="orm" group="Revisions" label="Cars" />
<argument />
<argument>Projekt\Comparison\Car\CarRevision</argument>
<argument>ProjektComparisonBundle:CarRevision</argument>
</service>
</services>
</container>
Klasa admin
namespace Projekt\ComparisonBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
class CarRevisionAdmin extends Admin
{
protected $parentAssociationMapping = 'car';
}
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