【发布时间】:2010-04-02 18:06:08
【问题描述】:
我在 symfony 中有以下 URL(具体不重要):
/frontend_dev.php/something/25/apple
...和一个路由规则:
/something/:id/:word
在网站上单击该 URL 时可以正常工作,但在我输入 URL 时却不行。相反,symfony 说:
Unable to find a matching route to generate url for params "NULL".
奇怪的是,我可以导航到这个页面并且它可以工作,但是当在浏览器地址栏中按 Enter 时,它不再找到它。
对于一般情况下可能导致这种情况的原因有什么想法吗?
我还应该补充一点,早先在地址栏中输入时,该 URL 工作正常,但现在不行了,我不确定有什么可能会干扰它。
提前致谢。
更新:
确切的路由规则:
profile:
url: /profile/:id/:un
param: {module: profile, action: profile}
更新:
调试工具栏日志(高亮部分):
Unable to find a matching route to generate url for params "NULL". Toggle debug stack
#4 » in sfException::outputStackTrace() from SF_ROOT_DIR\lib\vendor\symfony\lib\exception\sfException.class.php line 110
#3 » in sfException->printStackTrace() from SF_ROOT_DIR\lib\vendor\symfony\lib\controller\sfFrontWebController.class.php line 52
#2 » in sfFrontWebController->dispatch() from SF_ROOT_DIR\lib\vendor\symfony\lib\util\sfContext.class.php line 170
#1 » in sfContext->dispatch() from SF_ROOT_DIR\web\frontend_dev.php line 13
已解决:
找到了……
我在失败页面的代码中有这个:
<?php echo link_to(__('Back to previous page').' ›', $sf_request->getReferer()) ?>
在bar中输入地址时引用失败。
【问题讨论】:
-
调试工具栏的日志部分告诉你它匹配或不匹配的路由是什么?你确实启用了默认路由
/:module/:action? -
@Raise:添加了上面的调试位。是的,在 routing.yml 底部启用了默认路由(并且已找到,已测试)。
-
@Raise:感谢您的帮助。
标签: url parameters routing symfony1 request