Php 在Zend Framework中连接表引发应用程序错误

Php 在Zend Framework中连接表引发应用程序错误,php,zend-framework,jointable,Php,Zend Framework,Jointable,在将Zend Framework库升级到1.12之后,我遇到了这个问题。它在1.11版本中运行良好 问题是,当我连接两个表时,出现了以下错误: 应用程序错误 异常信息: class Model_Member extends Zend_Db_Table_Abstract { public function getAll($params = array()) { $select = $this->select(); $select->set

在将Zend Framework库升级到1.12之后,我遇到了这个问题。它在1.11版本中运行良好

问题是,当我连接两个表时,出现了以下错误:

应用程序错误

异常信息:

class Model_Member extends Zend_Db_Table_Abstract
{
    public function getAll($params = array())
    {
        $select = $this->select();
        $select->setIntegrityCheck(false);

        $select->from("members", array('name', 'family_id'));
        $select->join('family', 'family.id = members.family_id', array('family_type'));

        $paginator = Zend_Paginator::factory($select);
        $paginator->setItemCountPerPage(20);
        $paginator->setCurrentPageNumber(1);
        $paginator->setPageRange(10);

        return $paginator;
    }
}
消息:指定的表与行的列不相同

此错误由Zend/Db/Table/Row/Abstract.php(第356行)生成

我的表格结构

Members:
  id (int)
  name (varchar)
  age (int)
  family_id (varchar)

Family:
  id (int)
  family_type (varchar)
foreach($this->paginator as $row)
{
}
我的型号:

class Model_Member extends Zend_Db_Table_Abstract
{
    public function getAll($params = array())
    {
        $select = $this->select();
        $select->setIntegrityCheck(false);

        $select->from("members", array('name', 'family_id'));
        $select->join('family', 'family.id = members.family_id', array('family_type'));

        $paginator = Zend_Paginator::factory($select);
        $paginator->setItemCountPerPage(20);
        $paginator->setCurrentPageNumber(1);
        $paginator->setPageRange(10);

        return $paginator;
    }
}
然后在我的视图文件中

Members:
  id (int)
  name (varchar)
  age (int)
  family_id (varchar)

Family:
  id (int)
  family_type (varchar)
foreach($this->paginator as $row)
{
}

在您的模型中尝试以下操作:

    class Model_Member extends Zend_Db_Table_Abstract
    {
    public function getAll($params = array(), $paged = 1)
   {
    $select = $this->select();
    $select->setIntegrityCheck(false);

    $select->from("members", array('name', 'family_id'));
    $select->join('family', 'family.id = members.family_id', array('family_type'));

    $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
    $paginator = new Zend_Paginator($adapter);
    $paginator->setItemCountPerPage(5)
              ->setCurrentPageNumber((int) $paged);

    return $paginator;
    }
 }
和视图:

<?php if($this->data instanceof Zend_Paginator): ?>
                               <?php echo $this->paginationControl($this->data,
                                                                     'Sliding',
                                                                            'pathToController/_paginator.phtml', array('params'=>$params);?>// if you want pass some params. 


它仍然不起作用。我仍然得到同样的错误。您是否尝试过使用zend framework v1.12连接两个表,然后从连接的表中选择几列?你的意思是说这适用于v1.12吗