Zend Framework:方法“getDbTable”不存在并且没有被困在__call()中

时间:2011-06-19 11:56:37

标签: php zend-framework

我已经从参考指南中实现了留言板示例,现在我正尝试使用编辑功能对其进行扩展。

我已将此添加到GuestbookController:

    public function editAction()
{
    $model    = new Application_Model_Guestbook();

    $request = $this->getRequest();
   if ($request->isPost()) { 
       Print_r('posted');die();
   }
    $model = Application_Model_GuestbookMapper::find($this->getRequest()->getParam('id'), $model);
    $form = new Application_Form_Guestbook(array('model' => $model));

    $this->view->form = $form;
}

并更改了视图索引以提供编辑操作的链接:

<?php foreach ($this->entries as $entry): ?>
    <?php $url = $this->url(
         array(
            'controller' => 'guestbook',
            'action'     => 'edit',
            'id'=>$entry->id
        ),
        'default',
        true) 
    ?>
<dt><?php echo $this->escape($entry->email) ?></dt>
<dd><a href="<?php echo $url; ?>"><?php echo $this->escape($entry->comment) ?></a></dd>
<?php endforeach ?>

映射器是标准的 - 直接复制并粘贴参考指南。

当我点击(http:// quickstart / guestbook / edit / id / 1)时,我遇到一个例外:[方法“getDbTable”不存在且未被困在__call()]

getDbTable()由find()函数调用,该函数位于同一文件中。为什么它找不到getDbTable()?

我正在运行:PHP版本5.3.3-7 + squeeze1,Zend Engine v2.3.0,Apache / 2.2.16(Debian)

1 个答案:

答案 0 :(得分:0)

你的类Application_Model_GuestbookMapper需要方法getDbTable()