لا تتصل الكتل بالقالب في Symfony

0

أحاول تعلم Symfony 4 وقوالبه. عندما أحاول ربط الكتل بقوالب مثل هذا:

// templates/base2.html.twig
<!DOCTYPE html>
<html>
    <body>
    <h2>test</h2>
        {% block blockoftext %}{% endblock %}
    </body>
</html>

(رمز الكتلة)

// 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>

، لذلك ، كتلة "blockoftext" غير متصلة. ماذا علي أن أفعل للحصول على نتيجة مثل هذا:

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

؟؟؟

1 إجابة

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,
));

ملف الفهرس هو امتداد للقاعدة 2. ليس العكس. وبالتالي index سيتضمن base2 ، لكن base2 لن يشمل أي شيء من index

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام