Значения по умолчанию в маршрутизации Symfony2 не передаются должным образом - PullRequest
1 голос
/ 26 февраля 2012

В настоящее время я пытаюсь настроить параметр маршрутизации в Symfony2, чтобы /cms перенаправлял на /cms/role/view. Тем не менее, передача значений по умолчанию не работает должным образом.

/ SRC / MyProject / CMSBundle / Ресурсы / конфигурации / routing.yml

MyProjectCMS_specific:
pattern:  /cms/{page}/{option}
defaults: { _controller: MyProjectCMSBundle:Main:index, page: role, option: view }
requirements:
    _method: GET

/ SRC / MyProject / CMSBundle / контроллер / 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, но он все равно выдает мне ту же ошибку. Как это возможно и как я могу это исправить?

Заранее спасибо.

1 Ответ

2 голосов
/ 26 февраля 2012

Я не знаю, в чем разница между тем, что вы написали, и

    public function indexAction($page = "role", $option = "view")

но, может быть, вы могли бы попробовать и сказать нам.

...