Mage_Core_Exception: неверный тип блока - блок работает только в среде разработки - PullRequest
0 голосов
/ 18 сентября 2018

У нас есть 3 среды, которые в настоящий момент являются точными копиями и управляются с помощью GIT.Среды:

  • Разработка (разработка)
  • Приемка (тестирование)
  • Мастер (в режиме реального времени)

Я разработал собственный модульдля блока, который отображает некоторые продукты.Модуль активен во всех трех средах и отображается в списке модулей через администратора.

Чтобы отобразить блок, на котором я использую обновление XML на странице CMS, эта страница абсолютно одинакова для всех 3среды тоже.Каким-то образом блок отображается на Develop, но не на Acceptance или Master, в то время как Develop не регистрирует никаких ошибок или исключений в других средах. Я получаю следующее исключение:

2018-09-18T12:12:40+00:00 ERR (3): 
Mage_Core_Exception: Invalid block type: BeterSport_CustomUpsellList_Block_Customupselllist in /data/web/staging/app/Mage.php:595
Stack trace:
#0 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block ty...')
#1 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('BeterSport_Cust...', Array)
#2 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('customupselllis...', 'customupselllis...')
#3 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('customupselllis...', 'customupselllis...')
#4 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 /data/web/staging/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /data/web/staging/app/code/core/Mage/Cms/Helper/Page.php(113): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /data/web/staging/app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_PageController), '231')
#9 /data/web/staging/app/code/core/Mage/Cms/controllers/PageController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_PageController), '231')
#10 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Cms_PageController->viewAction()
#11 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('view')
#12 /data/web/staging/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /data/web/staging/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#14 /data/web/staging/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#15 /data/web/staging/index.php(80): Mage::run('default', 'store')
#16 {main}

Что может быть причиной того, что блок не работает, и почему он работает на Develop?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Mage_Core_Exception: Invalid block type вызвано разницей в чувствительности CASE между моей средой разработки (Windows) и Testing / Live (Linux).

Решение:

Измените имя класса блока на правильное соглашение об именовании Magento, см. Ниже об изменении кода.

От:

class Vendor_Module_Block_BlockNameHere extends Mage_Core_Block_Template {

Кому:

class Vendor_Module_Block_Blocknamehere extends Mage_Core_Block_Template {

Измените BlockNameHere на Blocknamehere, начиная только с заглавной буквы.

0 голосов
/ 19 сентября 2018

Развернуты ли филиалы в разных средах?Если это так, проблема может быть связана с окружающей средой и ее базой данных, а не только с ветками git.Отображаете ли вы свой блок внутри блока CMS, как: {{block type=rss/order_new}}?Затем вы должны дать разрешение на панели Magento для этого типа блока.

Здесь вы можете выполнить правильные шаги для этого: https://docs.magento.com/m1/ce/user_guide/store-operations/permissions-content.html


Если проблема происходит в той же базе данныхи вы показываете свой блок напрямую с помощью XML, затем вы должны очистить кеш после изменения ветви и проверить, включен ли модуль с помощью кода (попробуйте контроллер hello world).

Надеюсь, это поможет вам.Привет.

...