EC-CUBE / EC-CUBE/ec-cube

4.3 Block not exists error

Open
#6,435 2 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
PHP
Stars
788
Forks
719
Avg merge
4d 4h
Merged PRs (30d)
39

Description

### 概要(Overview)

admin/default_frame.twig のイベント処理でソースを変更すると、下記のエラーが発生しました

`[2025-08-14T15:38:21.296514+09:00] admin.ERROR [41bec78b] [f123fd2] [1] [Eccube\Log\Logger:log:64] - システムエラーが発生しました。 ["Block \"sub_title\" on template \"__string_template__c45bb5d3a20b78cfb3a0aeda42e0eeb2\" does not exist in \"__string_template__c45bb5d3a20b78cfb3a0aeda42e0eeb2\" at line 17.","/mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php",195,"#0 /mnt/hgfs/project/php/eccube/ec431_mysql/var/cache/prod/twig/1a/1afd0f95560733e6fa77f4f9b3391fc1.php(57): Twig\\Template->displayBlock('sub_title', Array, Array)\n#1 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(394): __TwigTemplate_9bb330b6f44097512f5cb046258dcfa3->doDisplay(Array, Array)\n#2 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(367): Twig\\Template->displayWithErrorHandling(Array, Array)\n#3 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/TemplateWrapper.php(45): Twig\\Template->display(Array, Array)\n#4 /mnt/hgfs/project/php/eccube/ec431_mysql/var/cache/prod/twig/25/250e07a9df38e86fd27f7350cc2336e3.php(49): Twig\\TemplateWrapper->display(Array)\n#5 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(394): __TwigTemplate_15d5d3ce365257e02d5b65283fd76ad2->doDisplay(Array, Array)\n#6 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(367): Twig\\Template->displayWithErrorHandling(Array, Array)\n#7 /mnt/hgfs/project/php/eccube/ec431_mysql/var/cache/prod/twig/63/63b37d90b0da3251b5f3bc3481dd77f9.php(64): Twig\\Template->display(Array, Array)\n#8 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(394): __TwigTemplate_cbdb8f0048aef50e9fb31356c8bf614e->doDisplay(Array, Array)\n#9 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(367): Twig\\Template->displayWithErrorHandling(Array, Array)\n#10 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Template.php(379): Twig\\Template->display(Array)\n#11 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/TemplateWrapper.php(38): Twig\\Template->render(Array)\n#12 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/twig/twig/src/Environment.php(280): Twig\\TemplateWrapper->render(Array)\n#13 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/sensio/framework-extra-bundle/src/EventListener/TemplateListener.php(115): Twig\\Environment->render('@admin/Product/...', Array)\n#14 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/symfony/event-dispatcher/EventDispatcher.php(260): Sensio\\Bundle\\FrameworkExtraBundle\\EventListener\\TemplateListener->onKernelView(Object(Symfony\\Component\\HttpKernel\\Event\\ViewEvent), 'kernel.view', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#15 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/symfony/event-dispatcher/EventDispatcher.php(220): Symfony\\Component\\EventDispatcher\\EventDispatcher::Symfony\\Component\\EventDispatcher\\{closure}(Object(Symfony\\Component\\HttpKernel\\Event\\ViewEvent), 'kernel.view', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#16 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners(Array, 'kernel.view', Object(Symfony\\Component\\HttpKernel\\Event\\ViewEvent))\n#17 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/symfony/http-kernel/HttpKernel.php(186): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(Object(Symfony\\Component\\HttpKernel\\Event\\ViewEvent), 'kernel.view')\n#18 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#19 /mnt/hgfs/project/php/eccube/ec431_mysql/vendor/symfony/http-kernel/Kernel.php(197): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#20 /mnt/hgfs/project/php/eccube/ec431_mysql/index.php(83): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#21 {main}"] [GET, /yshadmin/product/product/2/edit, 10.0.0.158, NULL, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0]`

下記修正を行えば正常に戻ります。

`src\Eccube\Twig\Extension\TemplateEventExtension.php line:67
`

修正前
`->write('$__eccube__newTemplate->display($__eccube__event->getParameters());')
`

修正後
`->write('$__eccube__newTemplate->display($__eccube__event->getParameters(), $blocks);')
`

### 再現手順(Procedure)

下記Event.phpをCustomizeフォルダに置いて、トップページを表示すると再現されます。

```
twig = $twig;
}

/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'@admin/default_frame.twig' => 'onAdminFrameTwig',
];
}

public function onAdminFrameTwig(TemplateEvent $event)
{
$source = $event->getSource();
$event->setSource($source . 'any change');
}

}

```

### 環境(Environment)

EC-CUBE 4.3.1

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.