块未连接到Symfony中的模板

时间:2018-07-14 15:35:32

标签: php symfony twig

我正在尝试学习Symfony 4及其模板。 当我尝试使用以下模板连接模块时:

// templates/mainpage/index.html.twig
{% extends 'base2.html.twig' %}

{% block blockoftext %}
<h1>And I say: {{ string }}</h1>
{% endblock %}

(代码块)

// src/Controller/mainpage.php
<?php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class mainpage extends AbstractController
{
      /**
      * @Route("/mainpage")
      */
    public function mainpage()
    {
        $text = 'Hello, world!';
        return $this->render('base2.html.twig', array(
            'string' => $text,
        ));
    }
}
?>

然后像这样使用它:

<!DOCTYPE html>
<html>
    <body>
    <h2>test</h2>

输出为

<!DOCTYPE html>
<html>
    <body>
    <h2>test</h2>
    <h1>And I say: Hello, world!</h1>

,因此,块'blockoftext'未连接。我应该怎么做才能得到这样的结果:

JWT

1 个答案:

答案 0 :(得分:1)

public function mainpage()
{
    $text = 'Hello, world!';
    return $this->render('base2.html.twig', array(
        'string' => $text,
    ));
}

将退货更改为

return $this->render('index.html.twig', array(
    'string' => $text,
));

索引文件是base2的扩展。并非相反。因此index将包含base2,但base2将不包含index

中的任何内容