我在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);
答案 0 :(得分:1)
伙计,我擅长回答自己的问题。 :)
在Doctrine docs中找到了这个:
为了加载自定义Doctrine_Table类,您必须在bootstrap.php文件中启用autoload_table_classes属性,如下所示。
// boostrap.php
// ...
$manager->setAttribute(Doctrine_Core::ATTR_AUTOLOAD_TABLE_CLASSES, true);