Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony]Automatyczne generowanie routerów i kontrolera, Na podstawie bazy danych.
Szymciosek
post
Post #1





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Witam,
czy w Symfony2 jest możliwe wygenerowanie routerów na podstawie danych z bazy ?
Baza to: Contents, która ma w sobie między innymi kolumnę name np z zawartością "about", na tej podstawie chciałbym wygenerować
Kod
@Route("{lang}/about")

itd.

Następnym problemem jest wygenerowanie kontrolera z metodami do tych routerów.
Np teraz mam

  1. /**
  2.   * @Route("{lang}/about", requirements={"lang" = "(pl|en)"})
  3.   * @Template("MartaSiteBundle:Content:index.html.twig")
  4.   */
  5. public function aboutAction($lang)
  6. {
  7. $entityManager = $this->getDoctrine()->getEntityManager();
  8. $entities = $entityManager->getRepository("MartaSiteBundle:Contents")->findBy(array('name' => 'about'));
  9.  
  10. var_dump($entities[0]->getName());
  11.  
  12. return array('url_index' => '../' . $lang, 'url_about' => '../' . $lang . '/about');
  13. }


Czy to jest możliwe ?
Kolejną sprawą jest fakt, że każda metoda ma inne dane do pobrania, wyżej widać, że szukam name, ale równie dobrze to może być coś innego...
Go to the top of the page
+Quote Post
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


W bazie danych, czyli z założenia dynamiczne, chcesz przechowywać trasy do statycznych kontrolerów?
Generowanie tych tras w czasie działania aplikacji wydaje się być złym pomysłem, raczej powinieneś iść w kierunku dynamicznego routera, najlepiej w tym celu skorzystać/podejrzeć router z projektu Symfony CMF.
Go to the top of the page
+Quote Post
Szymciosek
post
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Mógłbyś podać mi jakiś najprostszy przykład użycia takiego routingu ?

Próbuję to odpalić na podstawie http://symfony.com/doc/master/cmf/bundles/routing-extra.html

Ale otrzymuję błąd:
Kod
InvalidConfigurationException: Unrecognized options "route_repository_service_id" under "symfony_cmf_routing_extra.dynamic"


  1. symfony_cmf_routing_extra:
  2. dynamic:
  3. enabled: true
  4. generic_controller: symfony_cmf_content.controller:indexAction
  5. controllers_by_alias:
  6. editablestatic: sandbox_main.controller:indexAction
  7. controllers_by_class:
  8. Symfony\Cmf\Bundle\ContentBundle\Document\StaticContent: symfony_cmf_content.controller::indexAction
  9. templates_by_class:
  10. Symfony\Cmf\Bundle\ContentBundle\Document\StaticContent: SymfonyCmfContentBundle:StaticContent:index.html.twig
  11.  
  12. # the repository is responsible to load routes
  13. # for `PHPCR-ODM`_, we mainly use this because it can map from url to repository path
  14. # an orm repository might need different logic. look at cmf_routing.xml for an example if you
  15. # need to define your own service
  16. manager_registry: doctrine_phpcr
  17. manager_name: default
  18.  
  19. # if you use the default doctrine route repository service, you can use this to customize
  20. # the root path for the `PHPCR-ODM`_ RouteRepository
  21. # this base path will be injected by the Listener\IdPrefix - but only to routes
  22. # matching the prefix, to allow for more than one route source.
  23. routing_repositoryroot: /cms/routes
  24.  
  25. # If you want to replace the default route or content reposititories
  26. # you can specify their service IDs here.
  27. route_repository_service_id: martasitebundle.repository.endpoint
  28. content_repository_service_id: martasitebundle.repository.endpoint
Go to the top of the page
+Quote Post
destroyerr
post
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


To fajnie, że otrzymujesz błąd. Kilka sekund szukania i można znaleźć rozwiązanie tego problemu.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 08:30