Twigでよくあるエラーの1つ、「A template that extends another one cannot include contents outside Twig blocks.」をご紹介します。

Twigではテンプレートの継承という概念を備えています。1つの親テンプレートを拡張して子のテンプレートを作ることでヘッダーやフッターなど共通要素の管理コストを大幅に下げられます。

ただ継承にはいくつかルールがあって、その中の1つに「extends」している子テンプレートではコンテンツは「block」の中に書かなければならないというものです。
例えばEC-CUBE3のトップページテンプレートはindex.twigですが、最初の方で{% extends ‘default_frame.twig’ %}というようにdefault_frame.twigを継承しています。

なのでブロックの外に何かを書いてしまうと・・・

A template that extends another one cannot include contents outside Twig blocks. Did you forget to put the contents inside a {% block %} tag in “__string_template__cfced8c61c7de427d11e8d72abf103e1121349b1b6599d3855c73859e48277bc” at line 56?

Whoops, looks like something went wrong.とエラーになります。
ブロックの外にコンテンツを書かないというのはTwigで継承を行う場合の基本ルールになります。

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ