我在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') ?>
但无济于事......
任何想法?
答案 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 }