2015-01-18 15 views
5

Próbowałem zainstalować pakiet administracyjny sonata, aby administrować moimi użytkownikami.pakiet sonata admin symfony

Używam pakietu użytkownika FOS.

Mam instrukcje, ale coś poszło nie tak i nie wiem co.

mam błąd:

nie może automatycznie określić nazwę trasy bazowej, należy określić wartość domyślną baseRouteName dla klasy administratora UserBundle\Admin\UserAdmin w C: \ Users \ Alexandre \ hubiC \ www \ kwestionariusz \ app/config. (który jest importowany z "C: \ Users \ Alexandre \ hubiC \ www \ questionnaire \ app/config \ routing.yml").

W mojej służbie mam:

services: 
    sonata.admin.user: 
     class: UserBundle\Admin\UserAdmin 
     tags: 
      - { name: sonata.admin, manager_type: orm, group: "Content", label: "User" } 
     arguments: 
      - ~ 
      - UserBundle\Entity\User 
      - ~ 
     calls: 
      - [ setTranslationDomain, [UserBundle]] 

W moim config:

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
    - { resource: services.yml } 
    - { resource: @UserBundle/Resources/config/admin.yml } 
sonata_block: 
    default_contexts: [cms] 
    blocks: 
     # Enable the SonataAdminBundle block 
     sonata.admin.block.admin_list: 
      contexts: [admin] 
     # Your other blocks 

a UserAdmin pliku:

<?php // 
namespace UserBundle\Admin; 

use Sonata\AdminBundle\Admin\Admin; 
use Sonata\AdminBundle\Datagrid\ListMapper; 
use Sonata\AdminBundle\Datagrid\DatagridMapper; 
use Sonata\AdminBundle\Form\FormMapper; 

class UserAdmin extends Admin 
{ 
    // Fields to be shown on create/edit forms 
    protected function configureFormFields(FormMapper $formMapper) 
    { 
     $formMapper 
      ->add('nom') 
      ->add('prenom') 
      ->add('adresse') 
      ->add('npa') 
      ->add('localite') 
      ->add('entreprise') 
     ; 
    } 

    // Fields to be shown on filter forms 
    protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
    { 
     $datagridMapper 
      ->add('nom') 
      ->add('prenom') 
      ->add('adresse') 
      ->add('npa') 
      ->add('localite') 
      ->add('entreprise') 
     ; 
    } 

    // Fields to be shown on lists 
    protected function configureListFields(ListMapper $listMapper) 
    { 
     $listMapper 
      ->addIdentifier('nom') 
      ->add('prenom') 
      ->add('adresse') 
      ->add('npa') 
      ->add('localite') 
      ->add('entreprise') 
     ; 
    } 
} 

ten plik w folderze UserBundle/admin.

Co było nie tak?

Dzięki

Odpowiedz

8

Nie jestem pewien, dlaczego sonata nie automatycznie generować baseRouteName dla Ciebie. Przypuszczam, że definiujesz swoją niestandardową strukturę katalogów lub niestandardową nazwę klasy. Możesz zrzucić powrót metody getBaseRouteName. Ta metoda służy do generowania informacji o routingu.

Można również zdefiniować go (nie jest automatycznie) .:

protected $baseRouteName = 'your_name'; 
    protected $baseRoutePattern = 'your_name'; 

routerów można sprawdzić w konsoli przez app/router konsoli: debug, nowa trasa od administratora powinien być tam

Routing problematyczne jest opisane tutaj w dokumentacji: https://sonata-project.org/bundles/admin/2-3/doc/reference/routing.html

+0

Mam znaleźć metodę w pliku admin.php, ale przez co mam zmienić wartość zwrotu? Lub jak zdefiniować zmienne $ baseRouteName? Jak masz na imię"? – anubis

+1

twoja_nazwa to niestandardowy ciąg znaków. Możesz wpisać "abc". Zwykła sonata definiuje ten ciąg z nazwy twojego pakietu. –

+0

Ok, to działa, ale teraz mam dostęp do pulpitu i mam moje jednostki, ale jeśli kliknę na listę, nie mam moich jednostek, ale przypuszczam, że to nie jest związane z rozwiązaniem mojego problemu? – anubis

Powiązane problemy