[英]How to execute cron job properly with magento - exception Mage_Core_Exception with message Invalid model/method definition
[英]Custom Magento Admin module with grid using block - 'Mage_Core_Exception' with message 'Invalid block type'
我正在開發一個自定義的magento admin后端模塊,該模塊將具有一個網格,其中包含可以添加/編輯的項目。 這是我的模塊結構:
/Mycompany/
---/Mymodule/
-------/Block/
-----------/Adminhtml
--------------/Manageskumappings.php
--------------/Manageskumappings/
-----------------/Grid.php
-----------------/Edit.php
-----------------/Edit/
--------------------/Form.php
-------/controllers/
-----------/Adminhtml
--------------/ManageskumappingsController.php
-------/etc/
-------/Helper/
-------/Model/
-------/sql/
這是我模塊的config.xml
:
<?xml version="1.0"?>
<config>
<!-- Module Info -->
<modules>
<Mycompany_Mymodule>
<version>2.0.0</version>
</Mycompany_Mymodule>
</modules>
<!-- Module Globals -->
<global>
<!-- Register Helper -->
<helpers>
<mycompany_mymodule>
<class>Mycompany_Mymodule_Helper</class>
</mycompany_mymodule>
</helpers>
<!-- Register Models -->
<models>
<mycompany_mymodule>
<class>Mycompany_Mymodule_Model</class>
<resourceModel>mycompany_mymodule_mysql4</resourceModel>
</mycompany_mymodule>
<mycompany_mymodule_mysql4>
<class>Mycompany_Mymodule_Model_Mysql4</class>
<entities>
<skumappings>
<table>icw_ic_skumappings</table>
</skumappings>
</entities>
</mycompany_mymodule_mysql4>
</models>
<!-- Register Resource -->
<resources>
<mycompany_mymodule_setup>
<setup>
<module>Mycompany_Mymodule</module>
</setup>
</mycompany_mymodule_setup>
</resources>
</global>
<!-- Admin Router -->
<admin>
<routers>
<adminhtml>
<args>
<modules>
<Mycompany_Mymodule after="Mage_Adminhtml">Mycompany_Mymodule_Adminhtml</Mycompany_Mymodule>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<!-- Admin Layout -->
<adminhtml>
<layout>
<updates>
<mycompany_mymodule>
<file>mycompany/mymodule.xml</file>
</mycompany_mymodule>
</updates>
</layout>
</adminhtml>
</config>
這是我的模塊的adminhtml.xml
:
<?xml version="1.0"?>
<config>
<!-- Menu Setup -->
<menu>
<mycompany translate="title" module="mycompany_mymodule">
<title>Infinite:Connect v2</title>
<sort_order>0</sort_order>
<children>
<mycompany_mymodule_manageskumappings>
<title>Manage SKU Mappings</title>
<sort_order>1</sort_order>
<action>adminhtml/manageskumappings</action>
</mycompany_mymodule_manageskumappings>
</children>
</mycompany>
</menu>
<!-- Access Control List -->
<acl>
<resources>
<admin>
<children>
<mycompany translate="title" module="mycompany_mymodule">
<title>My Module</title>
<sort_order>1</sort_order>
<children>
<manageskumappings>
<title>Manage SKU Mappings</title>
<sort_order>1</sort_order>
</manageskumappings>
</children>
</mycompany>
</children>
</admin>
</resources>
</acl>
</config>
我創建了以下布局文件:
app / design / adminhtml / default / default / layout / mycompany / mymodule.xml
具有以下定義:
<?xml version="1.0"?>
<layout>
<!-- Manage SKU Mappings -->
<adminhtml_manageskumappings_index>
<reference name="content">
<block type="mycompany_mymodule/adminhtml_manageskumappings" name="mycompany_mymodule_manageskumappings" />
</reference>
</adminhtml_manageskumappings_index>
</layout>
這是我的網格控制器:
app / code / community / Mycompany / Mymodule / controllers / Adminhtml / ManageskumappingsController.php
使用以下代碼:
<?php
class Mycompany_Mymodule_Adminhtml_ManageskumappingsController extends Mage_Adminhtml_Controller_Action
{
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')
->isAllowed('mycompany/manageskumappings');
}
protected function _initAction()
{
$this->loadLayout()
->_setActiveMenu('mycompany/mycompany_mymodule_manageskumappings')
->_title('Manage SKU Mappings');
return $this;
}
public function indexAction()
{
$this->_initAction()
->renderLayout();
}
// ... Snipped ...
我已經上傳了代碼,數據庫被遷移,並顯示菜單。 當我進入菜單“ Mymodule-> Manage SKU Mappings”時,我看到一個空白頁面。
我去看看var / log / exception.log,我看到了以下內容:
/var/www/public_html/app/Mage.php:595中帶有消息“無效塊類型:Mage_Mycompany_Mymodule_Block_Adminhtml_Manageskumappings”的異常“ Mage_Core_Exception”
知道有什么問題嗎?
我看到的第一個錯誤是:您忘記注冊塊了。 請將塊定義部分添加到模塊config.xml中:
<config>
...
<global>
...
<!-- Register Blocks -->
<blocks>
<mycompany_mymodule>
<class>Mycompany_Mymodule_Block</class>
</mycompany_mymodule>
</blocks>
...
</global>
...
<config>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.