현재 symfony2에서 라우팅 옵션을 구성하려고하므로 은 /cms/role/view
으로 라우팅됩니다. 그러나 기본값 전달이 제대로 작동하지 않는 것 같습니다.Symfony2 라우팅의 기본값이 제대로 전달되지 않습니다.
/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;
}
}
?>
문제는 때 I 내가 시도하는 경우에, 그러나
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
: '로컬 호스트/app_dev.php/CMS'로 이동하려고, 그것은 나에게 다음과 같은 오류를 제공합니다 localhost/app_dev.php/cms/role
또는 localhost/app_dev.php/cms/role/view
을 방문하면 올바른 페이지를 제공합니다. /cms
에 기본 경로를 추가하려고 시도했지만 여전히 동일한 오류가 발생합니다. 어떻게 이것이 가능하며 어떻게 해결할 수 있습니까?
미리 감사드립니다.
우선, yaml 또는 주석으로 라우팅을 결정해야합니다. 구성에 따라 사용되지 않으며 독자와 혼란스럽게 코드가 혼동됩니다! – Sgoettschkes
죄송합니다, 당신 말이 맞아요. 내가 차이를 만들 것이라고 시도했기 때문에 그것을 추가했지만, 그렇지는 않았다. 나는 그것을 지금 제거했다. – Rex