Zend framework zend框架组件数据库可以';找不到类Zend_Paginator_Adapter_DbTableSelect

Zend framework zend框架组件数据库可以';找不到类Zend_Paginator_Adapter_DbTableSelect,zend-framework,pagination,zend-db-table,zend-paginator,Zend Framework,Pagination,Zend Db Table,Zend Paginator,我正在一个小项目中使用Zend框架之外的一些Zend库。 我正在使用Zend_Db和Zend_Paginator但是当我试图使用Zend_Paginator_Adapter_DbTableSelect设置分页时,我得到一个错误,它找不到类 致命错误:在第65行的C:\xampp\htdocs\php\u testing\Zend\Zend\u db\index1.php中找不到类“Zend\u Paginator\u Adapter\u DbTableSelect” 这是我的密码: 谢谢 更

我正在一个小项目中使用Zend框架之外的一些Zend库。 我正在使用
Zend_Db
Zend_Paginator
但是当我试图使用
Zend_Paginator_Adapter_DbTableSelect
设置分页时,我得到一个错误,它找不到类

致命错误:在第65行的C:\xampp\htdocs\php\u testing\Zend\Zend\u db\index1.php中找不到类“Zend\u Paginator\u Adapter\u DbTableSelect” 这是我的密码:


谢谢

更新编辑

<?
$config=array(
    'adapter' => 'PDO_MYSQL',
    'hostname' => 'localhost',
    'dbname' => 'dm_xxxx',
    'username' => 'un',
    'password' => 'pw'

);
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
$db=Zend_Db::factory($config['adapter'], $config);
$table = new Photos(array('db' => $db));
$select = $table->select();
$select->setIntegrityCheck(false)
        ->from('photocontest__photos', array('*'))
        ->order('created')
        ;       

$currentPageNumber = ($_GET['page'] > 0)?$_GET['page']:'1';
$itemsPerPage = 6;
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select); //Setup the adapter object
$paginator = new Zend_Paginator($adapter); //Setup the actual paginator object

$paginator->setCurrentPageNumber($currentPageNumber);
$paginator->setItemCountPerPage($itemsPerPage); // items pre page

$scrollType = 'Sliding'; //change this to 'All', 'Elastic', 'Sliding' or 'Jumping' to test all scrolling types

Zend_Paginator::setDefaultScrollingStyle('Sliding'); // Sliding  or  Elastic
//Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');

$paginatorControl = get_object_vars($paginator->getPages($scrollType)); //and that's it! we can now use the $paginator variable as we want
?>
<h1>Zend_Paginator Demo</h1>
<ul id="items">
    <?php foreach($paginator AS $item): ?>
        <li><?php echo $item->title; ?></li>
    <?php endforeach ?>
</ul>

<div id="paginator">
    <p>Showing <strong><?php echo $paginatorControl['firstItemNumber'] ?> to <?php echo $paginatorControl['lastItemNumber'] ?></strong> out of <strong><?php echo $paginatorControl['totalItemCount'] ?></strong> items</p>

    <?php if($paginatorControl['previous']): ?>
        <a href="?page=<?php echo $paginatorControl['previous'] ?>">&laquo; Prev</a>
    <?php else: ?>
        <span>&laquo; Prev</span>
    <?php endif ?>

    <?php if($paginatorControl['firstPageInRange'] > $paginatorControl['first']): ?>
        <a href="?page=<?php echo $paginatorControl['first'] ?>"><?php echo $paginatorControl['first'] ?></a>
        <span>...</span>
    <?php endif ?>

    <?php foreach($paginatorControl['pagesInRange'] as $page): ?>
        <?php if($page == $paginatorControl['current']): ?>
            <span><?php echo $page ?></span>
        <?php else: ?>
            <a href="?page=<?php echo $page ?>"><?php echo $page ?></a>
        <?php endif ?>
    <?php endforeach ?>

    <?php if($paginatorControl['lastPageInRange'] < $paginatorControl['last']): ?>
        <span>...</span>
        <a href="?page=<?php echo $paginatorControl['last'] ?>"><?php echo $paginatorControl['last'] ?></a>
    <?php endif ?>

    <?php if($paginatorControl['next']): ?>
        <a href="?page=<?php echo $paginatorControl['next'] ?>">Next &raquo;</a>
    <?php else: ?>
        <span>Next &raquo;</span>
    <?php endif ?>
</div>

编辑:我认为我的第一个解决方案不会对你有帮助,除非你可以在没有Zend_Paginator_Adapter_DbTableSelect的情况下生活。但是看看您的代码,您是否尝试过直接包含DbTableSelect.php

尝试使用::工厂

$paginator = Zend_Paginator::factory($adapter);


$paginator->setCurrentPageNumber($currentPageNumber);
$paginator->setItemCountPerPage($itemsPerPage);
$scrollType = 'Sliding';
$paginator = get_object_vars($paginator->getPages($scrollType));

我包含了它,现在我得到了一个不同的错误:致命错误:未捕获异常“Zend_Db_Select_exception”,在C:\xampp\php\dev\include\ZendFramework-1.9.6\library\Zend\Db\Select.php:1320堆栈跟踪:#0[内部函数]:Zend_Db_Select->调用('getTable',Array)#1 C:\xampp\php\dev\include\ZendFramework-1.9.6\library\Zend\Paginator\Adapter\DbTableSelect.php(46):Zend\u Db\u Select->getTable()#2 C:\xampp\php\dev\include\ZendFramework-1.9.6\library\Zend\Paginator.php(750):Zend_Paginator_Adapter_DbTableSelect-…等…Zend使用自动加载程序加载其所有类,而您似乎没有设置使用它。所以我想你必须手工把每个文件都包括进去。您可以用这些新信息发布一个新问题,并获得更精确的帮助。我想我现在可以通过添加:require_once('Zend/Loader.php');Zend_Loader::registerAutoload();我仍然收到错误:致命错误:未捕获异常“Zend_Db_Select_exception”,消息为“Unrecognized method”getTable()”,我认为这与我在ZF时不调用表名有关:$photoTable=new Photo_Model_Photos()$select=$photoTable->select();我让它工作了。在我的原始帖子中查看我的更新。我必须在同一目录中为db表名创建一个名为“Photos.php”的类,其中包含以下内容:我唯一搞不清楚的是使用模板文件“pagination.phtml”。它正在视图/脚本中查找它。所以我把它放在那里,但它有问题。在我编辑的更新代码中,有没有一种方法可以告诉我设置表名而不必使用:$table=new Photos(array('db'=>$db));并使用类文件Photos.php?我不想仅仅为了设置表名而创建单独的文件。我知道在使用整个框架时这是非常好的,但是在这个例子中,我只使用了一些组件。谢谢
$paginator = Zend_Paginator::factory($adapter);


$paginator->setCurrentPageNumber($currentPageNumber);
$paginator->setItemCountPerPage($itemsPerPage);
$scrollType = 'Sliding';
$paginator = get_object_vars($paginator->getPages($scrollType));
<?
$config=array(
    'adapter' => 'PDO_MYSQL',
    'hostname' => 'localhost',
    'dbname' => 'dm_xxxx',
    'username' => 'un',
    'password' => 'pw'

);
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
$db=Zend_Db::factory($config['adapter'], $config);
$table = new Photos(array('db' => $db));
$select = $table->select();
$select->setIntegrityCheck(false)
        ->from('photocontest__photos', array('*'))
        ->order('created')
        ;       

$currentPageNumber = ($_GET['page'] > 0)?$_GET['page']:'1';
$itemsPerPage = 6;
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select); //Setup the adapter object
$paginator = new Zend_Paginator($adapter); //Setup the actual paginator object

$paginator->setCurrentPageNumber($currentPageNumber);
$paginator->setItemCountPerPage($itemsPerPage); // items pre page

$scrollType = 'Sliding'; //change this to 'All', 'Elastic', 'Sliding' or 'Jumping' to test all scrolling types

Zend_Paginator::setDefaultScrollingStyle('Sliding'); // Sliding  or  Elastic
//Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination.phtml');

$paginatorControl = get_object_vars($paginator->getPages($scrollType)); //and that's it! we can now use the $paginator variable as we want
?>
<h1>Zend_Paginator Demo</h1>
<ul id="items">
    <?php foreach($paginator AS $item): ?>
        <li><?php echo $item->title; ?></li>
    <?php endforeach ?>
</ul>

<div id="paginator">
    <p>Showing <strong><?php echo $paginatorControl['firstItemNumber'] ?> to <?php echo $paginatorControl['lastItemNumber'] ?></strong> out of <strong><?php echo $paginatorControl['totalItemCount'] ?></strong> items</p>

    <?php if($paginatorControl['previous']): ?>
        <a href="?page=<?php echo $paginatorControl['previous'] ?>">&laquo; Prev</a>
    <?php else: ?>
        <span>&laquo; Prev</span>
    <?php endif ?>

    <?php if($paginatorControl['firstPageInRange'] > $paginatorControl['first']): ?>
        <a href="?page=<?php echo $paginatorControl['first'] ?>"><?php echo $paginatorControl['first'] ?></a>
        <span>...</span>
    <?php endif ?>

    <?php foreach($paginatorControl['pagesInRange'] as $page): ?>
        <?php if($page == $paginatorControl['current']): ?>
            <span><?php echo $page ?></span>
        <?php else: ?>
            <a href="?page=<?php echo $page ?>"><?php echo $page ?></a>
        <?php endif ?>
    <?php endforeach ?>

    <?php if($paginatorControl['lastPageInRange'] < $paginatorControl['last']): ?>
        <span>...</span>
        <a href="?page=<?php echo $paginatorControl['last'] ?>"><?php echo $paginatorControl['last'] ?></a>
    <?php endif ?>

    <?php if($paginatorControl['next']): ?>
        <a href="?page=<?php echo $paginatorControl['next'] ?>">Next &raquo;</a>
    <?php else: ?>
        <span>Next &raquo;</span>
    <?php endif ?>
</div>