gpt4 book ai didi

php - SImple Symfony2 'Front Page' Controller 、路由器和模板。为什么我仍然看到欢迎页面?

转载 作者:搜寻专家 更新时间:2023-10-31 21:06:00 25 4
gpt4 key购买 nike

我刚开始使用 Symfony 2.7.3。

我一直在阅读“这本书”,试图将对我来说新的概念拼凑起来。

我整理了我的第一个简单示例 -- 我的“首页”。

使用下面的代码,当我导航到

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

我不明白为什么我仍然看到那个而不是我的“测试测试”。

我盯着这个看,我知道我一定错过了一些应该很明显的简单的东西:-/但是什么?多盯着它看并没有让我有任何收获。

为什么我看不到“TEST TEST”,我需要在此处修复什么?

./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 %}

最佳答案

Symfony 在默认安装中包含一个 AppBundle。该包包含一个默认控制,其中包含“/”的默认操作。更改此 Controller 操作以处理其他路径,然后将执行对应于“frontpage”的 Controller 操作。

在 AppBundle\Controller\DefaultController 中,将 indexAction 更改为下面的 gien

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 文件中(很可能)在你的路由之前声明的行。

关于php - SImple Symfony2 'Front Page' Controller 、路由器和模板。为什么我仍然看到欢迎页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com