Вспомогательный метод Symfony link_to игнорирует третий аргумент - PullRequest
0 голосов
/ 28 февраля 2011

Я пытаюсь создать независимые от среды ссылки в меню навигации с помощью системы маршрутизации Symfony. У меня есть следующие маршруты в routing.yml:

# Navigation menu rules
sample:
  class:   sfDoctrineRouteCollection
  options: { model: Sample }

# Default rules (catch all)
homepage:
  url:    /
  param:  { module: sample, action: index }

default_index:
  url:   /:module
  param: { action: index }

default:
  url:   /:module/:action/*

И в меню навигации у меня есть следующие вызовы вспомогательного метода link_to, настроенные в соответствии с фактическим разделом:

<?php
...
if ( $actualSection === 'sample' )
    echo link_to('Sample', 'sample', array('class' => 'actualSection'));
else
    echo link_to('Sample', 'sample');

...
?>

Проблема в том, что link_to генерирует ссылки типа:

<a href="/sample?class=actualSection">Samples</a>

вместо

<a href="/sample" class="actualSection">Samples</a>

Как правильно использовать вспомогательный метод link_to с системой маршрутизации для генерации последней ссылки?

Согласно link_to документации внутренние URI должны быть записаны в формате «модуль / действие», поэтому я предполагаю, что начальный / можно опустить.

Ответы [ 2 ]

4 голосов
/ 28 февраля 2011

Ваш второй аргумент неверен. Либо вы вводите имя маршрута с префиксом '@' (например, @sample_index или любой другой маршрут, который генерирует sfDoctrineCollection), либо вы используете "формат модуля / действия" => sample/index.

2 голосов
/ 28 февраля 2011

Попробуйте что-то вроде этого:

echo link_to('Sample', 'sample', array(), array('class' => 'actualSection'));

Первый массив - параметры маршрута, второй - атрибуты html

...