Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony2][Symfony] Routing, problem z nakładającymi się ścieżkami
Barton
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 26.10.2008

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


Witam,

Jako początkujący w symfony mam pewien problem z routingiem. Mam sobie taki kontroler:

  1. class UslugiController extends Controller
  2. {
  3. /**
  4.   * @Route("/{kategoria}/{miasto}/{zaklad}/")
  5.   */
  6. public function pobierzAction($kategoria, $miasto, $zaklad)
  7. {
  8. ...
  9. }
  10. }


Przy okazji wygenerowałem sobie panel CRUD do innego modelu, w którym to jest akcja:

  1. /**
  2.  * Zlecenia controller.
  3.  *
  4.  * @Route("/admin/zlecenia")
  5.  */
  6. class ZleceniaController extends Controller
  7. {
  8.  
  9. /**
  10.   * Displays a form to create a new Zlecenia entity.
  11.   *
  12.   * @Route("/new", name="admin_zlecenia_new")
  13.   * @Method("GET")
  14.   * @Template()
  15.   */
  16. public function newAction()
  17. {
  18. $entity = new Zlecenia();
  19. $form = $this->createForm(new ZleceniaType(), $entity);
  20.  
  21. return array(
  22. 'entity' => $entity,
  23. 'form' => $form->createView(),
  24. );
  25. }
  26. }


I nie mam pojęcia dlaczego, po wpisaniuw pasek adresu końcówki /admin/zlecenia/new, uruchamia mi się akcja... pobierz z kontrolera Uslugi. W jaki sposób to dać do zrozumienia symfony którą akcje ma odpalać?

Routing.yml wygląda tak:

  1. moj_pakiet:
  2. resource: "@MojPakietBundle/Controller/"
  3. type: annotation
  4. prefix: /


Ten post edytował Barton 9.04.2013, 21:32:27
Go to the top of the page
+Quote Post
ShadowD
post
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Symfony niestety ale używa adnotacji:

#1
@Route("/{kategoria}/{miasto}/{zaklad}/")

#2
@Route("/admin/zlecenia")
@Route("/new", name="admin_zlecenia_new")

Te liniki mają znaczenie usuń je i cały routing ustawiaj w *.yml.

Ten post edytował ShadowD 9.04.2013, 21:52:17
Go to the top of the page
+Quote Post
Barton
post
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 26.10.2008

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


No dobrze ale czym w zasadzie różni się routing w formie adnotacji a czym w routing.yml? Rozumiem że w routing.yml można ustawić kolejność i tylko tym się to chyba różni. Wybrałem formę adnotacji gdyż wydawało mi się to czytelniejsze.

Myślałem że jak już na stałe wpisałem /admin/zlecenia/new to już nie będzie mi dopasowywało adresu do zmiennych typu {kategoria}. Mógłbym użyć wymagań (requirements) ale {kategoria} czy {miasto} to czyste litery tak samo jako słowo 'admin' więc to również nie wchodzi raczej w grę...
Go to the top of the page
+Quote Post
ShadowD
post
Post #4





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


#1
@Route("/{kategoria}/{miasto}/{zaklad}/")

#2
@Route("/admin/zlecenia")
@Route("/new", name="admin_zlecenia_new")

#1 przykład:
/samoloty/lublin/szklarski
/admin/zlecenia/new
/pieski/kolorowe/sa

#2 przykład:
/admin/zlecenia/new


#2 pasuje do 1 jaki i do 2 więc znaczenie ma kolejność - sf nie wie że admin to nie kategoria...

Osobiście uważam że przy większych projektach adnotacje zaciemniają kod (chodzi o routing bo modele z zdno. są super użyteczne).
Go to the top of the page
+Quote Post
Barton
post
Post #5





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 26.10.2008

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


Ok, w takim razie przeniosę się jutro do routing.yml. (IMG:style_emoticons/default/wink.gif) Dzięki.
Go to the top of the page
+Quote Post

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: 18.09.2025 - 09:22