Php 简单符号2';头版';控制器,路由器及;模板。为什么我仍然看到欢迎页面?

Php 简单符号2';头版';控制器,路由器及;模板。为什么我仍然看到欢迎页面?,php,symfony,twig,Php,Symfony,Twig,我只是从Symfony 2.7.3开始 我一直在读《这本书》,试图把新概念拼凑在一起 我把我的第一个简单的例子放在一起——我的“头版” 有了下面的代码,当我导航到时,我希望看到一个只有“TEST TEST”字样的空白页面 http://example.com/app_dev.php/ 相反,我看到的是标准的Symfony欢迎页面 Welcome to Symfony 2.7.3 Your application is ready to start working on it at: /srv

我只是从Symfony 2.7.3开始

我一直在读《这本书》,试图把新概念拼凑在一起

我把我的第一个简单的例子放在一起——我的“头版”

有了下面的代码,当我导航到时,我希望看到一个只有“TEST TEST”字样的空白页面

http://example.com/app_dev.php/
相反,我看到的是标准的Symfony欢迎页面

Welcome to Symfony 2.7.3

Your application is ready to start working on it at: /srv/www/test1/symfony/
What's next?

Read Symfony documentation to learn
How to create your first page in Symfony
我不明白为什么我仍然看到这一点,而不是我的“测试”

我盯着这个,我知道我一定错过了一些简单的,应该是显而易见的东西:-/但是什么?更多地盯着它看不会让我有任何进展

为什么我看不到“测试”,我需要在这里修复什么

./app/config/routing.yml
    _frontpage:
        path:      /
        defaults:  { _controller: AppBundle:FrontPage:index }


./src/AppBundle/Controller/FrontPageController.php
    <?php
    namespace AppBundle\Controller;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    class FrontPageController extends Controller
    {
        /**
         * @Route("/", name="index")
         */
        public function indexAction() {
            return $this->render('default/page-front.html.twig');
        }
    }

./app/Resources/views/base.html.twig
    <!DOCTYPE html>
    <html>
        <head>
            <title>{% block title %}this title{% endblock %}</title>
            {% block meta %}
                <meta charset="UTF-8" />
            {% endblock %}
            {% block stylesheets %}{% endblock %}
        </head>
        <body>
            {% block body %}{% endblock %}
            {% block javascripts %}{% endblock %}
        </body>
    </html>

./app/Resources/views/default/page-front.html.twig
    {% extends 'base.html.twig' %}
    {% block title %}Changed Title{% endblock %}
    {% block body %}
        <div><p>TEST TEST</p></div>
    {% endblock %}
    {% block stylesheets %}
    {% endblock %}
/app/config/routing.yml
_首页:
路径:/
默认值:{u控制器:AppBundle:FrontPage:index}
./src/AppBundle/Controller/FrontPageController.php

Symfony的默认安装中包含一个AppBundle。此捆绑包包含一个默认控件,其中包含“/”的默认操作。将此控制器操作更改为处理其他路径,然后将执行与“frontpage”对应的控制器操作

在AppBundle\Controller\DefaultController中,更改索引,如下所示

class DefaultController extends Controller
{
    /**
     * @Route("/default", name="homepage")
     */
    public function indexAction(Request $request)
    {
        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', array(
            'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
        ));
    }
}

为“/”路径声明了两次相同的配置。AppBundle由于以下原因而获得优先级:

app:
    resource: "@AppBundle/Controller/"
    type:     annotation

在routing.yml文件中的行,该行(很可能)在路由之前声明。

既然您说您是从Symfony开始的,建议的路径就是删除
AppBundle
DefaultController
类中的
indexAction()
方法的内容,并在其中添加您自己的逻辑


Symfony中没有任何东西是“硬连线”的,但是通常建议使用
AppBundle
+
DefaultController
+名为
homepage
的路由来定义应用程序的主页。

将AppBundle\Controller\DefaultController中的“@route(“/”,…”更改为“@route(/default)”。我现在看到“测试”了。我不是在“告诉”在我的router.yml中使用的DefaultController.php。那么它真的是默认的吗,它硬连接到Symfony本身并将一直使用?我打算删除它,因为我不打算使用它。在使用之前需要了解这一点!相同的配置为“/”路径声明了两次。AppBundle获得优先权是因为e of
app:resource:“@AppBundle/Controller/”在routing.yml文件中键入:注释