0

Zend Framework ライブラリを 1.12 にアップグレードした後、この問題が発生しました。バージョン 1.11 では問題なく動作していました。

問題は、2 つのテーブルを結合したときに、次のエラーが発生したことです。

アプリケーションエラー

例外情報:

メッセージ: 指定されたテーブルには行と同じ列がありません

このエラーは、Zend/Db/Table/Row/Abstract.php (行 356 )から生成されます。

私のテーブル構造

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

Family:
  id (int)
  family_type (varchar)

私のモデル:

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

そして、私のビューファイルで

foreach($this->paginator as $row)
{
}
4

1 に答える 1

0

あなたのモデルでこれを試してください:

    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. 

あなたのアプリで動作するはずです。

于 2013-10-28T07:16:38.127 に答える