Php 将参数传递给Symfony Routes

Php 将参数传递给Symfony Routes,php,symfony1,Php,Symfony1,我有一个显示动态页面的已定义路线: page_show: url: /:domain_slug/:slug class: sfPropelRoute options: model: Page type: object method: doSelectByDomain param: { module: page, action: show } requirements: sf_method: [get] 这很好,但现在我希望我的主页U

我有一个显示动态页面的已定义路线:

page_show:
  url:     /:domain_slug/:slug
  class:   sfPropelRoute
  options:
    model: Page
    type:  object
method: doSelectByDomain
  param:   { module: page, action: show }
  requirements:
    sf_method: [get]
这很好,但现在我希望我的主页URI路由到一个特定的页面。为此,我假设我必须传递要显示为主页的页面的
:domain\u slug
:slug
值。这很好,但我似乎找不到任何文档或示例来说明如何去做

是否可以在管线中指定特定的变量值?在本例中,我希望传递
:domain\u slug=>portal,:slug=>dashboard
(顺便说一句,该语法不起作用)。基本上,我想创建一个主页路径,如下所示:

homepage:
  url:   /
  class: sfPropelRoute
  param: { module: page, action: show, array( :domain_slug => portal, :slug => dashboard ) }
  options:
    model: Page
    type: object
    method: doSelectByDomain
但是不同的是,你知道,它可以工作我想我可以创建一个到另一个方法的简单路由,手动修改请求参数并转发到
executeShow()
方法,但如果有更优雅的解决方案,我宁愿避免这种攻击


谢谢

您可以在路由的
param
键中定义值。。。例如:

homepage:
  url:   /
  class: sfPropelRoute
  param: { module: page, action: show, domain_slug: portal, slug: dashboard}
  options:
    model: Page
    type: object
    method: doSelectByDomain

至少这是非推进/条令路线的工作原理。我假设它应该与框架中的任何类型的路由相同。

您可以在路由的
param
键中定义值。。。例如:

homepage:
  url:   /
  class: sfPropelRoute
  param: { module: page, action: show, domain_slug: portal, slug: dashboard}
  options:
    model: Page
    type: object
    method: doSelectByDomain

至少这是非推进/条令路线的工作原理。我假设框架中的任何类型的路由都应该是相同的。

我从来没有找到一种有效的方法(或者可能我就是无法正确地做到)。我的解决方案是创建路由并通过一个自定义方法传递它,该方法负责指定适当的页面详细信息:

homepage:
  url:   /
  class: sfPropelRoute
  options:
    model: Page
    type: object
    method: doSelectHomepage
  param: { module: page, action: show ) }
  requirements:
    sf_method: [get]

doSelectHomepage()
方法完成了我希望通过硬编码路由本身中的值来完成的所有工作。

我从未找到一种有效的方法来完成这项工作(或者可能我无法正确地完成)。我的解决方案是创建路由并通过一个自定义方法传递它,该方法负责指定适当的页面详细信息:

homepage:
  url:   /
  class: sfPropelRoute
  options:
    model: Page
    type: object
    method: doSelectHomepage
  param: { module: page, action: show ) }
  requirements:
    sf_method: [get]

doSelectHomepage()
方法完成了我希望通过硬编码路由本身中的值来完成的所有工作。

实际上它确实起了作用,这只是路由定义的顺序。第一个答案是正确的。如果您在“页面显示”规则之前添加“主页”规则,则可能对您有效。所以也许Symfony没有我想的那么愚蠢…不,不,是的。其实没那么糟糕。

事实上,它确实起了作用,只是路线定义的顺序。第一个答案是正确的。如果您在“页面显示”规则之前添加“主页”规则,则可能对您有效。所以也许Symfony没有我想的那么愚蠢…不,不,是的。没那么糟。

是的,我也试过了。当工作流到达我的自定义处理程序方法(
doSelectByDomain
)时,没有参数。阵列完全是空的。是的,我也试过了。当工作流到达我的自定义处理程序方法(
doSelectByDomain
)时,没有参数。数组完全是空的,太可怕了。这真的是解决办法吗?symfony是一个如此愚蠢的框架…我也在同一条船上,真的不想这么做。。。根据我正在阅读的所有内容,您应该能够传入param:{misc_arg:value},但它不起作用。啊,那太可怕了。这真的是解决办法吗?symfony是一个如此愚蠢的框架…我也在同一条船上,真的不想这么做。。。根据我正在阅读的所有内容,您应该能够传入param:{misc_arg:value},但它不起作用。啊