2017-01-05 9 views
0

をスロー私はこのObjectModelを持っている:私はこのような新しいインスタンスを作成しようとするとPrestaShopの - オブジェクトモデルの作成が例外

<?php 


class DnDPayment extends ObjectModel { 

    public $id_dnd_payments; 
    public $bank; 
    public $payer; 
    public $amount; 
    public $reference; 
    public $date_add; 

    public static $definition_array = array(
     'table' => 'dnd_payments', 
     'primary' => 'id_dnd_payments', 
     'multilang' => false, 
     'fields' => array(
      'bank' => array('type' => self::TYPE_STRING, required => true), 
      'payer' => array('type' => self::TYPE_STRING, required => true), 
      'amount' => array('type' => self::TYPE_STRING, required => true), 
      'reference' => array('type' => self::TYPE_STRING, required => true), 
      'date_add' => array('type' => self::TYPE_STRING, required => true) 
     ) 
    ); 

    public static function savePayment($bank, $payer, $amount, $reference) { 
     $logger = new FileLogger(0); 
     $logger->setFilename(_PS_ROOT_DIR_ . "/log/debug.log"); 
     $logger->logDebug($bank . ' :: ' . $payer . ' :: ' . $amount); 

     Db::getInstance()->insert('dnd_payments', array(
      'bank' => $bank, 
      'payer' => $payer, 
      'amount' => $amount, 
      'reference' => $reference, 
      'date_add' => date('Y-m-d H:i:s') 
     )); 
    } 
} 

new DnDPayments();を、私はこの例外は私の顔に投げます:

を[message:protected] => DnDPaymentクラスに対して無効な識別子またはテーブルフォーマット

これはテーブルを作成するために使用するSQLコードです:

CREATE TABLE IF NOT EXISTS `PREFIX_dnd_payments` (
    `id_dnd_payments` int(11) NOT NULL AUTO_INCREMENT, 
    `bank` varchar(128) NOT NULL, 
    `payer` varchar(128) NOT NULL, 
    `amount` decimal(15,3) NOT NULL, 
    `reference` varchar(128) NOT NULL, 
    `date_add` datetime NOT NULL, 
    PRIMARY KEY (`id_dnd_payments`) 
) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 

ここで間違っていますか?

答えて

0

定義は、$definitionで、$definition_arrayではありません。タイプミスに注意してください。最高ののは、他のコアクラスからコピーして変更することです。

幸運。

関連する問題