Prestashop - 对象模型创建抛出异常

Prestashop - Object Model creation throws exception

我有这个对象模型:

<?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] => Identifier or table format not valid for class DnDPayment

这是我用来创建 table:

的 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 ;

我做错了什么?

定义变量应该是 $definition 而不是 $definition_array。小心错别字。最好是从其他核心copy过来class修改一下

祝你好运。