2017-05-09 18 views
0

我是新來的Magento,現在試圖建立在管理 形式得到錯誤例外「Mage_Core_Exception」有消息「無效的塊類型:

異常‘Mage_Core_Exception’有消息‘無效的塊類型:用C Mage_Tamodule_Block_Adminhtml_Event_Edit’ :\ XAMPP \ htdocs中\毫克\ 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 /默認任何佈局/默認/佈局。我的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($這個 - > getLayout() - > createBlock( 'tamodule/adminhtml_event_edit')) 返回布爾(假)

當我創建了一個單獨的模塊用於解決

回答

0

問題自定義管理員表單。

我真的不知道什麼時候出錯了,當我有太多的編碼棒球,但是我很少發現新蜜蜂必須做的事情。 1)始終啓用開發人員模式。 2)密切關注var/log/system.log &異常。 3)如果你在學習階段,按照教程中提到的那樣練習課程(大多數情況下)。原因是有幾次我們犯了上限/小錯誤&路徑錯誤,這會導致不必要的浪費時間。

4)嘗試在代碼中使用多重回聲/捕獲異常等。

即使做一個單獨的模塊後,我做比較的代碼結構,文件夾結構,一切都是一樣的,只是我單獨分開這個菜單項到不同的文件夾中。

使用上面的如果你得到2我遇到的問題,並轉移到一個單獨的模塊幫助。 1)如果最終出現無效塊類型=請注意錯誤以找不到法師_ **塊開始。要在控制器中糾正這個問題,請嘗試給出完整的程序段,然後在幫助程序中發出錯誤,說明找不到_Helper。

相關問題