Как исправить эту фатальную ошибку getIdFieldName в magento? - PullRequest
1 голос
/ 01 марта 2012

Я новичок в magento. Я пытаюсь написать модуль, чтобы сообщить о нарушении сайта. У меня есть форма на странице ниже.

http://localhost/magento/vendorinfo/page/report/

Имя модуля - vendorinfo, контроллер - страница, а действие - отчет. Ниже мой ReportAction, который взят из моего модуля Venderinfo

    public function reportsubmitAction() {
       $data = $this->getRequest()->getParams();
 try {

            $insert_data = array();
            $insert_data['reporter_name']    = $data['name'];
            $insert_data['reporter_email']   = $data['email'];
            $insert_data['report_category']  = $data['category_type'];
            $insert_data['reporter_comment'] = $data['report_comments'];


            $model = Mage::getModel('vendorinfo/report'); 
            $model->setData($insert_data)->setId(null);  // i have got the error on this line
            $model->setCreatedTime(now())->setUpdateTime(now());
            $model->save();

            Mage::getSingleton('frontend/session')->addSuccess(Mage::helper('articles')->__('Report was successfully submitted'));
            Mage::getSingleton('frontend/session')->setFormData(false);
        } catch (Exception $e) {
            Mage::getSingleton('frontend/session')->addError($e->getMessage());
            Mage::getSingleton('frontend/session')->setFormData($data);
            $this->_redirect('vendorinfo/page/report', array());
            return;
        }

    }

Когда я отправлял форму, я вызывал вышеуказанное действие для сохранения моих данных в БД. Но у меня есть эта ошибка ниже,

Неустранимая ошибка: вызов функции-члена getIdFieldName () для не объект в C: \ xampp \ htdocs \ magento \ app \ code \ core \ Mage \ Core \ Model \ Abstract.php на линия 151

Также я создал 2 файла модели в следующей структуре папок,

1. Venderinfo / Модель / Report.php

class Comp_Vendorinfo_Model_Report extends Mage_Core_Model_Abstract
{
    public function _construct()
    {
        parent::_construct();
        $this->_init('vendorinfo/report_abuse');

    }
}

2.Venderinfo / модель / mysql4 / Report / Collection.php

   class Comp_Vendorinfo_Model_Mysql4_Report_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
    {
        public function _construct()
        {
            parent::_construct();
            $this->_init('vendorinfo/report_abuse');
        }
    }

Что я сделал не так на этом?

Добрый совет по этому поводу.

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

Вам необходимо создать модель ресурса Venderinfo/Model/Mysql4/Report.php и объявить ее в своем конфиге.В вашей таблице базы данных у вас должно быть поле идентификатора, например report_id, и это имя должно быть определено в конструкторе модели ресурсов.

http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics

0 голосов
/ 02 февраля 2018

Пожалуйста, перейдите в корневой файл magento-> app / etc И проверьте файл local.xml если это не доступно здесь, пожалуйста, скопируйте local.xml другой каталог magento и отредактируйте и скопируйте сюда.

Проблема решена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...