2012-03-01 3 views
1

私はmagentoを初めて使っています。サイトに関する虐待を報告するモジュールを作成しようとしています。私は下のページにフォームを持っています。このgetIdFieldNameのMagentoでの致命的なエラーを修正するにはどうすればよいですか?

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

モジュール名はvendorinfo、controllerはpage、actionはreportです。以下は、私はDBに自分のデータを格納するために、上記のアクションと呼ばれるフォームを送信すると、私の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; 
     } 

    } 

から取った私のReportActionです。しかし、私は、

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

    } 
} 

また

Fatal error: Call to a member function getIdFieldName() on a non-object in C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\Abstract.php on line 151

私は、次のフォルダ構造の下2つのモデルファイルを作成する必要があり、

1 Venderinfo /モデル/ Report.phpをこの下のエラーを得たveは」

2.Venderinfo /モデル/ Mysql4 /レポート/ 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

magentoバージョンが1.6以上であれば、Mysql4以外のリソースを使用する方がよいでしょう。 –

答えて

0

親切に[ファイル] - > [アプリの/ etc Magentoのルートに移動し、これは、ここで利用できない場合local.xmlファイル を確認してください親切にlocal.xml別のMagentoのディレクトリをコピーして、ここに&コピーを編集します。

問題が解決しました

関連する問題