【问题标题】:symfony button_to pass parametersymfony button_to 传递参数
【发布时间】:2011-07-20 18:02:57
【问题描述】:

我在 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') ?>

但无济于事......

有什么想法吗?

【问题讨论】:

    标签: symfony1 routing symfony-1.4 urlhelper


    【解决方案1】:

    试试这个:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我刚刚尝试过这个,但它没有任何区别......再次,使用 link_to 它可以工作。如果我仍然要发送一个值,那么路由配置中的默认值有什么意义?
      • 自从谷歌搜索后,我发现一些论坛主题告诉我在这种情况下缺少参数的默认值,我希望它能解决你的问题:oldforum.symfony-project.org/index.php/m/74351
      • 顺便说一句,button_to()link_to() 助手生成的 HTML 代码是什么?你能找到任何可以解释你的问题的区别吗?
      • button_to : ButtonName
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多