2

当我尝试在 Symfony2 路由中使用 2 个可选变量时,出现错误:在 routing.yml 中找不到“GET /”的路由我有:

AcmeAshavatBundle_homepage:
pattern:  /{page}/{ads_on_page}/
defaults: { _controller: AcmeAshavatBundle:Page:index, page:1, ads_on_page:2 }
requirements:
   _method:  GET|POST

当我去http://localhost:8080/AshavatSy/web/app_dev.php/我有错误。有趣的是,如果我运行http://localhost:8080/AshavatSy/web/app_dev.php/1它运行良好。此外,如果我将路径更改为模式:/main/{page}/{ads_on_page}/ 它运行良好。
问题是什么?
我想问一下,有人会尝试在他的项目,看看这是不是一个常见的问题......

4

2 回答 2

2

通过使用默认参数定义两个指向同一个控制器的路由,我设法使类似的工作。就我而言,使用注释:

/**
 * @Route("/products/{catId}/{prodId}", defaults={"catId"="", "prodId"=""})
 * @Route("/products/")
 * @Template()
 */
public function indexAction($catId = null, $prodId = null) {
    ...

我认为仅使用默认参数,Symfony 会期望两个 /。

高温高压

于 2012-05-05T09:31:41.493 回答
1

我认为您忘记将这两个参数传递给控制器​​中的 IndexAction()。

试试这个代码

Public function indexAction($page,$ads_on_page)
{}

希望这对您有所帮助。

于 2012-05-03T03:37:52.947 回答