Я пытаюсь загрузить мои файлы .phtml в папку шаблонов в моем обозревателе, но получаю эту ошибку
Недопустимый файл шаблона: 'VENDOR_MYModule :: Category / index.phtml'в модуле: имя блока 'VENDOR_MYModule': 'category_0'
Вот структура моих файлов
app
+ code
+ VENDOR
+ MYModule
+ Block
- Category.php
+ Controller
+ Category
- Index.php
+ etc
+ frontend
- routes.xml
+ Observer
- CategoryObserver.php
+ view
+ frontend
+ layout
- header_category_index.xml
+ templates
+ category
- index.phtml
Теперь содержимое моего Block/Category.php
ниже
<?php
namespace VENDOR\MYModule\Block;
class Category extends \Magento\Framework\View\Element\Template
{
public function __construct(
\Magento\Backend\Block\Template\Context $context,
array $data = []
){
parent::__construct($context, $data);
}
}
Содержание моего Controller/Category/Index.php
ниже
<?php
namespace VENDOR\MYModule\Controller\Category;
class Index extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory
)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
return $this->_pageFactory->create();
}
}
Содержание layout/header_category_index.xml
ниже
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<referenceContainer name="content">
<block class="VENDOR\MYModule\Block\Category" name="category_items" template="VENDOR_MYModule::category/index.phtml" />
</referenceContainer>
</page>
Содержание моего .phtml
простопростой <h1>Hello world</h1>
.Теперь в моем Observer
я пытаюсь загрузить этот .phtml
файл, но я не могу загрузить его и получаю сообщение об ошибке.Содержание моего Обозревателя Observer\CategoryObserver
ниже
public function execute(\Magento\Framework\Event\Observer $observer)
{
$layout = $this->_layout->create();
$block = $layout->createBlock('VENDOR\MYModule\Block\Category')->setTemplate('VENDOR_MYModule::Category/index.phtml')->toHtml();
$this->_logger->debug("[DEBUG]::" , [$block]);
}
Вот содержимое моего events.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="catalog_category_save_after">
<observer name="category-edit" instance="VENDOR\MYModule\Observer\CategoryObserver" />
</event>
</config>
Но я получаю сообщение об ошибке, как упомянуто выше.Любая идея о том, как загрузить этот файл .phtml для наблюдателя?Я планирую записать содержимое этого файла .phtml в файл .txt.Но я не могу продолжить, так как я попытался вывести его, но я все еще получаю сообщение об ошибке
ОБНОВЛЕНИЕ:
Попробовал мой код с помощью контроллера Frontend / доступа к действию иблок успешно загружен.Теперь я думаю, что есть другой способ или реализация при получении .phtml в части администратора или в Observer.Также обратите внимание, что наблюдатель срабатывает, когда я пытаюсь отредактировать / сохранить каталог-> категорию.