Odnośniki w Symfony Framework

Podczas pracy z Symfony jednym z zagadnień, który osobie rozpoczynającej swoją pracę z tym Frameworkiem może nastręczać pewne kłopoty, jest prawidłowe budowanie odnośników. Czy to w elementach nawigacyjnych strony internetowej zbudowanej na bazie tego Frameworka, czy do innych obszarów aplikacji, jak formularze, widoki itp.

Podstawowym zagadnieniem, od którego powinniśmy rozpocząć zbudowanie odnośnika, jest przejście do kontrolera, do którego chcemy utworzyć odnośnik i upewnienie się, że ścieżka, która jest obsłużona przez ten kontroler ma zdefiniowany parametr name.

 /**
 * @Route(
 *      "/list",
 *       name="resmanager_accomodation_list"
 * )
 * @Template("WizartsResManagerBundle:Accomodation:list.html.twig")
 */
 public function accomodationList(){   
    ...
 }

Mając tak zdefiniowaną, scieżkę możemy przejść do pliku twig, w którym będziemy chcięli utworzyć odnośnik, do tego kontrolera I skorzystać z funkcji path:

<a href="{{ path('resmanager_accomodation_list') }}">...</a>

W przypadku ścieżek, które oczekują dodatkowych parametrów jak np.:

/**
* @Route(
*      "/edit/{name}",
*      name="resmanager_accomodation_edit"
* )
* @Template("WizartsResManagerBundle:Accomodation:index.html.twig")
*/
public function accomodationEdit(Request $request){
    …
}

do funkcji path należy przekazać ten dodatkowy parametr w postaci tablicy asocjacyjnej:

<a href="{{ path('resmanager_accomodation_edit', { name: entry.id }) }}">

Więcej o: Linkowanie w Symfony.