无法使用带有Zend Framework的Doctrine调用模型表类中的方法

时间:2010-06-03 20:42:34

标签: zend-framework model doctrine

我在Zend Framework中使用Doctrine。对于我的模型,我使用的是基类,常规类(扩展基类)和表类。

在我的表类中,我创建了一个方法,该方法查询具有模型中某个字段的特定值的记录。当我尝试从我的控制器调用此方法时,我收到一条错误消息,说“消息:未知方法Doctrine_Table :: getCreditPurchases”。在表类中调用函数需要做些什么吗?这是我的代码:

class Model_CreditTable extends Doctrine_Table
{
    /**
     * Returns an instance of this class.
     *
     * @return object Model_CreditTable
     */
    public static function getInstance()
    {
        return Doctrine_Core::getTable('Model_Credit');
    }

    public function getCreditPurchases($id)
    {
        $q = $this->createQuery('c')
            ->where('c.buyer_id = ?', $id);

        return $q->fetchArray();
    }
}

// And then in my controller method I have...
$this->view->credits = Doctrine_Core::getTable('Model_Credit')->getCreditPurchases($ns->id);

1 个答案:

答案 0 :(得分:1)

伙计,我擅长回答自己的问题。 :)

在Doctrine docs中找到了这个:

  

为了加载自定义Doctrine_Table类,您必须在bootstrap.php文件中启用autoload_table_classes属性,如下所示。

// boostrap.php

// ...
$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true);