1

我在 Symfony 1.4 中有一个 button_to 组件,它调用一个接收参数(一个 slug)的路由。但我无法让 Symfony 识别我发送的参数。我已经用 link_to 尝试过同样的事情,它工作正常。

这是我的代码:

路由.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') ?>

但无济于事...

有任何想法吗?

4

2 回答 2

1

试试这个:

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

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

于 2011-03-22T20:16:08.947 回答
0

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

  param:              { module: entry, action: show, slug: default-slug }
于 2011-03-22T18:53:59.010 回答