web-dev-qa-db-ja.com

拡張するテンプレートに本文がないというエラーを取得する

私はjobeetチュートリアルに取り組んでいます。このようにローカルホストでプロジェクトを実行しているとき:

http://localhost/Symfony/web/app_dev.php/ens_job/

エラーが発生しています

A template that extends another one cannot have a body in EnslJobeetBundle:Job:index.html.twig at line 7.

この場合、どうすればよいですか?

私は次のようにindex.html.twigを使用しています:

<!-- src/Ens/JobeetBundle/Resources/views/Job/index.html.twig -->
{% extends 'EnsJobeetBundle::layout.html.twig' %}

{% block stylesheets %}
  {{ parent() }}
  <link rel="stylesheet" href="{{ asset('bundles/ensjobeet/css/jobs.css') }}" type="text/css" media="all" />
{% endblock %}

<!-- the rest of the code -->
29

このエラーは、子テンプレートにblocksからコンテンツがある場合に発生します。

<!-- src/Ensl/JobeetBundle/Resources/views/Job/index.html.twig -->からindex.html.twigを削除する必要があります

42
Vitalii Zurian

Twigでは、レイアウトを拡張する場合、html構文は許可されません。これは、html内のコメントタグでさえ、定義されたブロック外のコンテンツとして扱われることを意味します。コメントを保持したい場合は、twigコメントでこれを行うことができます:

{# src/Ens/JobeetBundle/Resources/views/Job/index.html.twig #}
{% extends 'EnsJobeetBundle::layout.html.twig' %}
{% block stylesheets %}
  {{ parent() }}
  <link rel="stylesheet" href="{{ asset('bundles/ensjobeet/css/jobs.css') }}" type="text/css" media="all" />
{% endblock %}
{# the rest of the code #}
13
Francis Alvin