Как получить корневую категорию в сценарии обновления Magento 1.9?Magento: Как получить идентификатор корневой категории для определенного хранилища в сценарии обновления?
Find root category of store предлагает решение, но я получаю сообщение об ошибке после выполнения сценария:
Mage registry key "controller" already exists
... а также след:
#0 /var/www/instances/global/app/Mage.php(223): Mage::throwException('Mage registry k...')
#1 /var/www/instances/global/app/code/core/Mage/Core/Model/App.php(762): Mage::register('controller', Object(Mage_Core_Controller_Varien_Front))
#2 /var/www/instances/global/app/code/core/Mage/Core/Model/App.php(1113): Mage_Core_Model_App->_initFrontController()
#3 /var/www/instances/global/app/code/core/Mage/Core/Controller/Varien/Front.php(344): Mage_Core_Model_App->getFrontController()
#4 /var/www/instances/global/app/code/core/Mage/Core/Controller/Varien/Front.php(161): Mage_Core_Controller_Varien_Front->_checkBaseUrl(Object(Mage_Core_Controller_Request_Http))
#5 /var/www/instances/global/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#6 /var/www/instances/global/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#7 /var/www/instances/global/index.php(118): Mage::run('', 'store')
#8 {main}
Мой сценарий называет Mage :: сначала инициализируйте init, затем попытайтесь прочитать имя корневой категории хранилища.
Mage::init();
Mage::app()->getStore(3)->getRootCategoryId();
Сообщение об ошибке кажется довольно распространенным; Mage registry key "controller" already exists указывает, что Mage :: run может быть запущен дважды.
Поэтому я предполагаю, что Mage :: init также не следует вызывать дважды и, возможно, вызывается снова после вызова моего скрипта обновления, и это может вызвать мое сообщение об ошибке. Все предположения.
Что мне делать? Omit Mage :: init()? Но тогда я не получаю идентификатор корня. Уничтожить объекты, созданные Mage :: init()? Как?
Это лучше подходит для сайта Magento SE. – webnoob
Спасибо за подсказку - я не знал, что она существует. В следующий раз! – dani