я создал новый модуль, в котором я создаю блок с помощью следующего метода в IndexController.php
который находится на app/code/local/Ashfame/Helloblock/controllers/IndexController.php
ошибка Magento создания блока
class Ashfame_Helloblock_IndexController extends Mage_Core_Controller_Front_Action {
public function indexAction() {
// this works fine
$block = new Ashfame_Helloblock_Block_Helloblock();
echo $block->toHtml();
}
public function layoutAction() {
// this doesn't work
$layout = Mage::getSingleton('core/layout');
$block = $layout->createBlock('ashfame_helloblock/helloblock','root');
var_dump($block); // this returns false
echo $block->toHtml();
}
}
Мой блок класс Ashfame_Helloblock_Block_Helloblock
и находится в app/code/local/Ashfame/Helloblock/Block/Helloblock.php
Поскольку $block
в layoutAction()
ложна, PHP выдает ошибку Call to a member function toHtml() on a non-object
на отладки я обнаружил, что Magento является выяснение имя класса неверно. Он определяет имя класса как mage_Ashfame_helloblock_block
внутри getGroupedClassName()
.
Что здесь не так?
Что ваше приложение/код/местные/Ashfame/Helloblock/и т.д./config.xml выглядеть? – nachito
Хорошее отслеживание работы через сопоставление имен классов. Сердце исследователя так важно в развитии Magento. – benmarks
@benmarks heh спасибо! Я второй, что :) – Ashfame