A importação de Galho Arquivo em Galho Arquivo
-
23-12-2019 - |
Pergunta
Alguém sabe por que eu iria receber esse erro?Eu estou tentando importar o meu arquivo de cabeçalho em um dos meus outros galho de arquivos.
Nota: Ele funciona bem se eu remover o estende link.
Type: Twig_Error_Syntax
Message: A template that extends another one cannot have a body in "assessmentBuilder/FacultyControl.html.twig" at line 2.
File: /var/www/html/dev/portfolio/libraries/Twig/Parser.php
Line: 374
Qualquer ajuda?Li no Galho de documentação, mas parece mal escrito e eu não conseguia entender por que isso está acontecendo.
{% extends "home_page_tabs.html.twig" %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../docs-assets/ico/favicon.png">
<title>Assessment for Portfolio</title>
<!-- css imports -->
<link href="/dev/editButton/css/bootstrap.css" rel="stylesheet">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<link href="/dev/editButton/css/hover.css" rel="stylesheet">
<link href="/dev/editButton/css/style_assessment.css" rel="stylesheet">
<!-- js imports -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script src="/dev/editButton/js/script2014.js"></script>
</head>
<body>
<!-- secondary header that appears underneath the tabs -->
<div class="page-header fluid-container">
<div class="col-md-12 text-center">
<h1>My Classes</h1>
</div>
</div>
<div class="footer">
<div class="container"><p>© ASAP Media Services 2014</p></div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="/dev/editButton/js/bootstrap.js"></script>
</body>
</html>
Solução
extends
não é apenas outra palavra para incluir.Ele faz muito mais a fusão de trabalho, i.e.ele leva um pai de arquivo e substitui seletivamente único blocos com blocos definem a extensão do arquivo (o que contém extends
).
Assim, o primeiro passo é definir um modelo de base com alguns blocos.Em seguida, derivado deste modelo de base com extends
e substituir os blocos.
Ter um olhar para este exemplo: http://twig.sensiolabs.org/doc/tags/extends.html
A mensagem de erro diz, portanto, que em criança arquivo de modelo é o código fora do block
directivas.Você vai encontrar este explicado aqui: recebendo o erro que um modelo que se estende pode não ter corpo
Pelo caminho, um GALHO tem, também, um include
directiva.Ele está aqui:
http://twig.sensiolabs.org/doc/tags/include.html
Eu poderia imaginar é mais adequado para o que você está pretendendo (?).Com include
, você pode simplesmente "cadeia" de modelos.