symfony button_to передать параметр
У меня есть компонент button_to в Symfony 1.4, который вызывает маршрут, который получает параметр (слаг). Но я не могу заставить Symfony распознать параметр, который я отправляю. Я попробовал эту же вещь с link_to, и она отлично работает.
Вот мой код:
routing.yml
entry_show:
url: /entry/:slug
class: sfDoctrineRoute
options:
model: ProjectEntry
type: object
method: getEntryBySlug
param: { module: entry, action: show }
шаблон:
<?php echo button_to('ButtonName', 'entry_show', array('slug' => 'this-is-my-slug')) ?>
Модель входа:
public function getEntryBySlug($parameters)
{
return $this->findOneBySlug($parameters['slug']);
}
Все, что я получаю, это следующая ошибка 500:
В маршруте "/entry/:slug" отсутствуют некоторые обязательные параметры (:slug).
Я также попытался изменить код шаблона с помощью:
<?php echo button_to('ButtonName', 'entry_show?' . 'slug='.'this-is-my-slug') ?>
но безрезультатно...
есть идеи?
2 ответа
Решение
Попробуй это:
<?php echo button_to('ButtonName', '@entry_show?slug=this-is-my-slug') ?>
Символ @ необходимо связать с именованным маршрутом в конфигурации маршрутизации и параметром slug
является частью аргумента URI, а не 3-го аргумента button_to
функция.
Вы пытались установить значение по умолчанию для вашего параметра slug?
Такие как
param: { module: entry, action: show, slug: default-slug }