symfony button_to传递参数

时间:2011-03-22 18:39:09

标签: symfony1 routing symfony-1.4 urlhelper

我在Symfony 1.4中有一个button_to组件,它调用一个接收参数(slug)的路由。但是我无法让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 个答案:

答案 0 :(得分:1)

试试这个:

<?php echo button_to('ButtonName', '@entry_show?slug=this-is-my-slug') ?>

您需要@符号绑定到路由配置中的命名路由,参数slug是URI参数的一部分,而不是button_to函数的第3个参数。

答案 1 :(得分:0)

您是否尝试为slug参数设置默认值?

  param:              { module: entry, action: show, slug: default-slug }