异常 'Mage_Core_Exception',消息为“无效的块类型:
exception 'Mage_Core_Exception' with message 'Invalid block type:
我是 magento 的新手,现在正在尝试在管理中创建表单
收到错误
异常 'Mage_Core_Exception',C:\xampp\htdocs\mg\magento\app\Mage 中的消息 'Invalid block type: Mage_Tamodule_Block_Adminhtml_Event_Edit'。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($this->getLayout()->createBlock('tamodule/adminhtml_event_edit'))
return 布尔值(假)
当我为自定义管理表单创建一个单独的模块时,问题已解决。
我真的不知道当我有太多的编码俱乐部时出了什么问题,但是我想出一个新蜜蜂必须做的事情很少。
1)始终启用开发者模式。
2) 密切关注var/log/system.log & exception。
3)如果您处于学习阶段,请按照教程中的说明练习课程(大多数情况下都有效)。原因是我们很少犯上限/小错误和路径错误,这会导致不必要的时间浪费。
4) 尝试在代码中使用多个回显/捕获异常等。
即使在制作了一个单独的模块之后,我确实比较了代码结构、文件夹结构,一切都是一样的,只是我把这个菜单项单独分开到一个不同的文件夹。
如果您遇到我遇到的 2 个问题并且转移到一个单独的模块有帮助,请使用上面的方法。
1) 如果你最终得到一个无效的块类型 = 请注意错误以 Mage_** block not found 开头。要在控制器中更正此问题,请尝试提供完整的块并
2) 接下来它会在 Helper 中抛出错误,指出 Mage___Helper not found.
我是 magento 的新手,现在正在尝试在管理中创建表单 收到错误
异常 'Mage_Core_Exception',C:\xampp\htdocs\mg\magento\app\Mage 中的消息 'Invalid block type: Mage_Tamodule_Block_Adminhtml_Event_Edit'。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($this->getLayout()->createBlock('tamodule/adminhtml_event_edit')) return 布尔值(假)
当我为自定义管理表单创建一个单独的模块时,问题已解决。
我真的不知道当我有太多的编码俱乐部时出了什么问题,但是我想出一个新蜜蜂必须做的事情很少。 1)始终启用开发者模式。 2) 密切关注var/log/system.log & exception。 3)如果您处于学习阶段,请按照教程中的说明练习课程(大多数情况下都有效)。原因是我们很少犯上限/小错误和路径错误,这会导致不必要的时间浪费。
4) 尝试在代码中使用多个回显/捕获异常等。
即使在制作了一个单独的模块之后,我确实比较了代码结构、文件夹结构,一切都是一样的,只是我把这个菜单项单独分开到一个不同的文件夹。
如果您遇到我遇到的 2 个问题并且转移到一个单独的模块有帮助,请使用上面的方法。 1) 如果你最终得到一个无效的块类型 = 请注意错误以 Mage_** block not found 开头。要在控制器中更正此问题,请尝试提供完整的块并 2) 接下来它会在 Helper 中抛出错误,指出 Mage___Helper not found.