Symfony2:如何访问第二页?

Symfony2:如何访问第二页?,symfony,web,Symfony,Web,我是Symfony的新手,因此某些文档中的代码可能没有意义。无论如何,我正在制作一个网站,到目前为止,我在上面制作了两个页面(我想一个叫做“web”,另一个叫做“术语”)。但是,我不知道如何访问第二页的路由方面。这是我的密码: 1。TermsController.php <?php namespace Acme\WebBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class T

我是Symfony的新手,因此某些文档中的代码可能没有意义。无论如何,我正在制作一个网站,到目前为止,我在上面制作了两个页面(我想一个叫做“web”,另一个叫做“术语”)。但是,我不知道如何访问第二页的路由方面。这是我的密码:

1。TermsController.php

<?php

namespace Acme\WebBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class TermsController extends Controller
{
    public function indexAction($some)
    {
        return $this->render('AcmeWebBundle:Terms:index.html.twig');
    }
}
_条款:

pattern: /web/terms
resource: "@AcmeWebBundle/Controller/TermsController.php"
我应该通过http://*/app\u dev.php/web/terms访问第二个页面,但我遇到了错误


*=localhost

如果TermsController的索引操作与您指定的完全相同,那么为什么要使用$same参数?正是因为这个,你才会出错

您应该从TermsController中的indexAction中删除$some,或者在路由配置中为$some指定默认值。诸如此类:

_terms:
   path: /web/terms/{some}
   defaults:
       _controller: AcmeWebBundle:Terms:index
       some: ''
或者,如果不使用route参数:

_terms:
   path: /web/terms
   defaults:
       _controller: AcmeWebBundle:Terms:index

您可以查看文档。

为什么不为路由中的{u term使用默认值:{{u controller:AcmeWebBundle:Terms:index}?我试过了。事实上,如果我删除routing.yml的“_terms”部分,只保留“web”路由,那么一切都可以正常工作。如果我将“_terms”部分添加到routing.yml中,那么我无法同时访问“/web”和“/web/terms”,首先插入_terms:section,然后插入web:section。我这样做了,它显示出某种改进。它把我带到Symfony错误页面,而不是其他错误页面。我遇到了一个严重错误:critical-Uncaught PHP Exception RuntimeException:“Controller”Acme\WebBundle\Controller\TermsController::indexAction()“要求您为“$some”参数提供一个值(因为没有默认值,或者因为此参数后面有一个非可选参数)。”在/Applications/MAMP/htdocs/Symfony/app/cache/dev/classes.php第2093行,如果不需要$some,只需从TermsController.php的indexAction($some)中删除它即可
_terms:
   path: /web/terms
   defaults:
       _controller: AcmeWebBundle:Terms:index