yii2细枝子扩展,父布局输出两次

yii2细枝子扩展,父布局输出两次,yii2,twig,Yii2,Twig,我是小树枝初学者。我目前正在尝试使用Twig设置Yi2布局 我有三根树枝锉 小枝 {{ this.beginPage() }} <!DOCTYOE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="{{ app.language }}"> <head> <meta charset="{{ app.charset }}" />

我是小树枝初学者。我目前正在尝试使用Twig设置Yi2布局

我有三根树枝锉

小枝

{{ this.beginPage() }}
<!DOCTYOE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ app.language }}">
<head>
    <meta charset="{{ app.charset }}" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ html.encode(this.title) }}</title>
    {{ this.head() }}
    {{ html.csrfMetaTags() | raw }}
</head>
<body>
    {{ this.beginBody() }}
        {% block body %}{% endblock %}
    {{ this.endBody() }}
</body>
</html>
{{ this.endPage() }}
从我的Yii2控制器渲染后
返回$this->render('index')然后输出非常奇怪的结果:

<!DOCTYOE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    
    <meta name="csrf-param" content="_csrf">
    <meta name="csrf-token" content="z_y1CPsfUBwHE6uC3dHg225wVQ8i2-eGhZa9f55Qrm39nYI6gk0TdVJ6nruf5q6WJAcCaUGolPWo9fxM_TrNHA==">

</head>
<body>
    
            <div class="cp">
                <hr />
                    
<!DOCTYOE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link href="/mlaxology/yii2/workspace/projects/pawscms/web/assets/903cba57/css/style.css" rel="stylesheet">
    <meta name="csrf-param" content="_csrf">
    <meta name="csrf-token" content="z_y1CPsfUBwHE6uC3dHg225wVQ8i2-eGhZa9f55Qrm39nYI6gk0TdVJ6nruf5q6WJAcCaUGolPWo9fxM_TrNHA==">

</head>
<body>
    
            <div class="cp">
        this is header        <hr />
                    
            </div>
    
</body>
</html>

            </div>
    
</body>
</html>
经过几次调试。。。发生这种情况的原因是重新打印
content
,因此我使用
{%if content定义%}{{content | raw}}{%else%}
包装临时修复


有没有更好的方法来解决这个问题?

查看
yii2
的列表,似乎您需要将
void
环绕
this.beginPage()
等等。在一个独立的细枝环境中,您尝试做的当然是可能的。请参见回复@DarkBee。我尝试过使用
void
进行包装,但遇到了相同的问题。我想可能是我的Yii2结构问题。请注意它的
,不要
,谢谢你指出这个拼写错误,我刚刚纠正了。但是问题还是发生了哈哈。无论如何,非常感谢你的回复。
{% extends '_layouts/cp.twig' %}

{% block header %}this is header{% endblock %}
<!DOCTYOE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    
    <meta name="csrf-param" content="_csrf">
    <meta name="csrf-token" content="z_y1CPsfUBwHE6uC3dHg225wVQ8i2-eGhZa9f55Qrm39nYI6gk0TdVJ6nruf5q6WJAcCaUGolPWo9fxM_TrNHA==">

</head>
<body>
    
            <div class="cp">
                <hr />
                    
<!DOCTYOE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link href="/mlaxology/yii2/workspace/projects/pawscms/web/assets/903cba57/css/style.css" rel="stylesheet">
    <meta name="csrf-param" content="_csrf">
    <meta name="csrf-token" content="z_y1CPsfUBwHE6uC3dHg225wVQ8i2-eGhZa9f55Qrm39nYI6gk0TdVJ6nruf5q6WJAcCaUGolPWo9fxM_TrNHA==">

</head>
<body>
    
            <div class="cp">
        this is header        <hr />
                    
            </div>
    
</body>
</html>

            </div>
    
</body>
</html>
{% if content is defined %}{{ content | raw }}{% else %}
{{ void(this.beginPage()) }}
<!DOCTYOE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ app.language }}">
<head>
    <meta charset="{{ app.charset }}" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ html.encode(this.title) }}</title>
    {{ this.head() }}
    {{ html.csrfMetaTags() | raw }}
</head>
<body>
    {{ this.beginBody() }}
        {%- block body %}{% endblock %}
    {{ this.endBody() }}
</body>
</html>
{{ void(this.endPage()) }}
{% endif %}