我目前正在尝试在Symfony2中配置路由选项,以便/cms将路由到/cms/role/view。然而,默认值的传递似乎不能正常工作。
/src/MyProject/CMSBundle/Resources/config/routing.yml
MyProjectCMS_specific:
pattern: /cms/{page}/{option}
defaults: { _controller: MyProjectCMSBundle:Main:index, page: role, option: view }
requirements:
_method: GET/src/MyProject/CMSBundle/Controller/MainController.php
<?php
namespace MyProject\CMSBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class MainController extends Controller
{
public function indexAction($page, $option)
{
$response = null;
/* Switch statement that determines the page to be loaded. */
return $response;
}
}
?>问题是,当我试图转到` `localhost/app_dev.php/cms‘时,它给出了以下错误:
Controller "MyProject\CMSBundle\Controller\MainController::indexAction()" requires that you provide a value for the "$page" argument (because there is no default value or because there is a non optional argument after this one).
500 Internal Server Error - RuntimeException但是,如果我尝试访问localhost/app_dev.php/cms/role或localhost/app_dev.php/cms/role/view,它会给出正确的页面。我尝试向/cms添加默认路由,但仍然显示相同的错误。这是怎么可能的,我如何解决这个问题?
提前谢谢。
发布于 2012-02-26 22:18:46
我不知道你写的东西和
public function indexAction($page = "role", $option = "view")但也许你可以试一下然后告诉我们。
https://stackoverflow.com/questions/9452968
复制相似问题