我是magento的新手,现在正尝试在Admin中创建表单 得到错误
异常'Mage_Core_Exception',消息'无效的块类型:Mage_Tamodule_Block_Adminhtml_Event_Edit'在C:\ xampp \ htdocs \ mg \ magento \ app \ Mage.php:595
<?php
class Ta_TaModule_Adminhtml_EventController extends
Mage_Adminhtml_Controller_Action{
public function indexAction(){
$this->loadLayout();
$this->_addContent(
$this->getLayout()->createBlock('tamodule/adminhtml_event_edit')
);
return $this->renderLayout();
}
}
<?php
class Ta_Tamodule_Block_Adminhtml_Event_Edit extends
Mage_Adminhtml_Block_Widget_Form_Container
{
public function __construct()
{
$this->_objectId = 'event_id';
$this->_blockGroup = 'tamodule';
$this->_controller = 'adminhtml_event';
parent::__construct();
}
/**
* Get edit form container header text
*
* @return string
*/
public function getHeaderText()
{
return Mage::helper('tamodule')->__('New Event');
}
}
请注意,根据以下教程没有布局,因此我 没有在adminhtml / default / default / layout中创建任何布局。我的config.xml如下 - 请注意这还有很多其他的东西。
<?xml version="1.0"?>
<config>
<modules>
<Ta_TaModule>
<version>0.0.0</version>
</Ta_TaModule>
</modules>
<global>
<blocks>
<TaModule>
<class>Ta_TaModule_Model</class>
</TaModule>
</blocks>
<helpers>
<TaModule>
<class>Ta_TaModule_Helper</class>
</TaModule>
</helpers>
<events>
<catalog_product_save_after>
<observers>
<Ta_TaModule>
<class>TaModule/observer</class>
<method>logUpdate</method>
<type>singleton</type>
</Ta_TaModule>
</observers>
</catalog_product_save_after>
</events>
<models>
<TaModule>
<class>Ta_TaModule_Model</class>
<resourceModel>tamodule_resource</resourceModel>
</TaModule>
<tamodule_resource>
<class>Ta_TaModule_Model_Resource</class>
<entities>
<TaModule>
<table>Tamodule_event</table>
</TaModule>
</entities>
</tamodule_resource>
</models>
</global>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<tamodule before="Mage_Adminhtml">Ta_TaModule_Adminhtml</tamodule>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<frontend>
<routers>
<tamodule>
<use>standard</use>
<args>
<frontName>tamodule</frontName>
<module>Ta_TaModule</module>
</args>
</tamodule>
</routers>
<layout>
<updates>
<tamodule>
<file>example.xml</file>
</tamodule>
</updates>
</layout>
</frontend>
</config>
我也注意到了 的var_dump($这 - &GT; getLayout() - &GT; createBlock( 'tamodule / adminhtml_event_edit')) 返回布尔(假)
答案 0 :(得分:0)
问题已解决。
当我有太多的编码棒棒棒时,我真的不知道出了什么问题,但是我想出了一些新的蜜蜂必须做的事情。 1)始终启用开发人员模式。 2)密切关注var / log / system.log&amp;例外。 3)如果您正处于学习阶段,请按照教程中提到的那样练习课程(大部分情况都适用)。原因是我们很少出现上限/小错误&amp;路径错误,导致不必要的时间浪费。
4)尝试在代码中使用多个echo / capture异常等。
即使在制作一个单独的模块之后,我确实比较了代码结构,文件夹结构和一切都相同,只是我将这个菜单项单独分离到另一个文件夹。
如果您遇到我遇到的2个问题并转到单独的模块,请使用上述内容。 1)如果你最终得到一个无效的块类型=请注意错误从未找到Mage _ **块开始。要在控制器中更正此问题,请尝试给出完整的块和 2)接下来它将在助手中抛出错误,说明没有找到Mage_ _ _Helper。