2016-02-21 6 views
0

Я создал собственный модуль с помощью руководства разработчика Magento, но сценарий установщика не работает. Я получаю эту ошибку:Сценарий установщика Magento не работает 1.9

Fatal error: Class 'Mdg_Giftregistry_Model_Resource_Setup' not found in C:\xampp\htdocs\magento\includes\src\Mage_Core_Model_Resource_Setup.php on line 234

directory structure

Мой config.xml:

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Mdg_Giftregistry> 
      <version>0.1.0</version> 
     </Mdg_Giftregistry> 
    </modules> 
    <frontend> 
     <routers> 
      <mdg_giftregistry> 
       <use>standard</use> 
       <args> 
        <module>Mdg_Giftregistry</module> 
        <frontName>giftregistry</frontName> 
       </args> 
      </mdg_giftregistry> 
     </routers> 
    </frontend> 
    <global> 
     <models> 
      <mdg_giftregistry> 
       <class>Mdg_Giftregistry_Model</class> 
       <resourceModel>mdg_giftregistry_mysql4</resourceModel> 
      </mdg_giftregistry> 
      <mdg_giftregistry_mysql4> 
       <class>Mdg_Giftregistry_Model_Mysql4</class> 
       <entities> 
        <entity> 
         <table>mdg_giftregistry_entity</table> 
        </entity> 
        <item> 
         <table>mdg_giftregistry_item</table> 
        </item> 
        <type> 
         <table>mdg_giftregistry_type</table> 
        </type> 
       </entities> 
      </mdg_giftregistry_mysql4> 
     </models> 
     <resources> 
      <mdg_giftregistry_setup> 
       <setup> 
        <module>Mdg_Giftregistry</module> 
        <class>Mage_Core_Model_Resource_Setup</class> 
       </setup> 
       <connection> 
        <use>core_setup</use> 
       </connection> 
      </mdg_giftregistry_setup> 
      <mdg_giftregistry_write> 
       <connection> 
        <use>core_write</use> 
       </connection> 
      </mdg_giftregistry_write> 
      <mdg_giftregistry_read> 
       <connection> 
        <use>core_read</use> 
       </connection> 
      </mdg_giftregistry_read> 
     </resources> 
     <blocks> 
      <mdg_giftregistry> 
       <class>Mdg_Giftregistry_Block</class> 
      </mdg_giftregistry> 
     </blocks> 
     <helpers> 
      <mdg_giftregistry> 
       <class>Mdg_Giftregistry_Helper</class> 
      </mdg_giftregistry> 
     </helpers> 

    </global> 
</config> 

это инсталлятор скрипт

<?php 
$installer = $this; 
$installer->startSetup(); 
// Create the mdg_giftregistry/registry table 
$tableName = $installer->getTable('mdg_giftregistry/entity'); 
// Check if the table already exists 
if ($installer->getConnection()->isTableExists($tableName) != true) { 
$table = $installer->getConnection()->newTable($tableName)->addColumn('entity_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 
null, 
array(
'identity' => true, 
'unsigned' => true, 
'nullable' => false, 
'primary' => true, 
), 
'Entity Id' 
) 
->addColumn('customer_id', Varien_Db_Ddl_Table::TYPE_INTEGER, 
null, 
array(
'unsigned' => true, 
'nullable' => false, 
'default' => '0', 
), 
'Customer Id' 
) 
->addColumn('type_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, 
null, 
array(
'unsigned' => true, 
'nullable' => false, 
'default' => '0', 
), 
'Type Id') 
->addColumn('website_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, 
null, 
array(
'unsigned' => true, 
'nullable' => false, 
'default' => '0', 
), 
'Website Id' 
) 
->addColumn('event_name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, 
array(), 
'Event Name' 
) 
->addColumn('event_date', Varien_Db_Ddl_Table::TYPE_DATE, 
null, 
array(), 
'Event Date' 
)->addColumn('event_country', Varien_Db_Ddl_Table::TYPE_TEXT, 
3, 
array(), 
'Event Country' 
) 
->addColumn('event_location', Varien_Db_Ddl_Table::TYPE_TEXT, 
255,array(), 
'Event Location' 
) 
->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, 
null, 
array(
'nullable' => false, 
), 
'Created At') 
->addIndex($installer->getIdxName('mdg_giftregistry/entity', 
array('customer_id')), 
array('customer_id')) 
->addIndex($installer->getIdxName('mdg_giftregistry/entity', 
array('website_id')), 
array('website_id')) 
->addIndex($installer->getIdxName('mdg_giftregistry/entity', 
array('type_id')), 
array('type_id')) 
->addForeignKey(
$installer->getFkName(
'mdg_giftregistry/entity', 
'customer_id', 
'customer/entity','entity_id' 
), 
'customer_id', $installer->getTable('customer/entity'), 
'entity_id', 
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE) 
->addForeignKey(
$installer->getFkName(
'mdg_giftregistry/entity', 
'website_id', 
'core/website', 
'website_id' 
), 
'website_id', $installer->getTable('core/website'), 
'website_id', 
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE) 
->addForeignKey(
$installer->getFkName('mdg_giftregistry/entity', 
'type_id', 
'mdg_giftregistry/type', 
'type_id' 
), 
'type_id', $installer->getTable('mdg_giftregistry/type'), 
'type_id', 
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE); 
$installer->getConnection()->createTable($table); 
} 
$installer->endSetup(); 

Моя структура каталогов

+0

Вам необходимо прочитать [ask]. Если вы написали сценарий установщика, тогда, пожалуйста, покажите нам код. Если пользовательский модуль вышел из строя из-за его кода, пожалуйста, сообщите нам об этом. – Enigmativity

+0

Это не подходит для переполнения стека - возможно, на http://magento.stackexchange.com, но обязательно проверьте их «Как спросить». –

ответ

1

Fatal error: Class 'Mdg_Giftregistry_Model_Resource_Setup' not found

Это потому, что вы ссылки на пользовательский класс установки в вашем config.xml:

<setup> 
    <module>Mdg_Giftregistry</module> 
    <class>Mdg_Giftregistry_Model_Resource_Setup</class> 
</setup> 

Я предполагаю, что вы не создали класс еще, так что у вас есть два варианта:

  1. Создать класс Mdg_Giftregistry_Model_Resource_Setup, который мог бы расширить Mage_Core_Model_Resource_Setup:

    # File: app/code/local/Mdg/Giftregistry/Model/Resource/Setup.php 
    class Mdg_Giftregistry_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup 
    { 
    
    } 
    
  2. Изменить запись config.xml поэтому он использует класс ядра:

    <class>Mage_Core_Model_Resource_Setup</class> 
    

Вы, вероятно, еще больше проблем с установщиками, но без разделения кода, трудно знать/предсказать.

Удачи вам!

+0

Спасибо. Я уже создал класс установки. но после перехода на основной класс я получил запись в таблице Core_Resource, но скрипт установки не работает. Я также добавляю скрипт установщика в очередь. –

+0

Чтобы правильно отладить ваш сценарий установки, вам необходимо указать имя файла установки, полный файл config.xml, номер версии ресурса настройки в файле «core_resource» и структуру каталогов вашего модуля. –

+0

Привет, я обновляю свой полный скрипт config.xml, установщик, изображение структуры каталогов, и у меня есть запись в таблице основных ресурсов с 0.1.0, пожалуйста, проверьте его. –

Смежные вопросы