Zend framework Zend_Paginator停止工作

Zend framework Zend_Paginator停止工作,zend-framework,zend-paginator,Zend Framework,Zend Paginator,我正在学习Zend框架。我让Zend_Paginator使用阵列适配器,但使用Zend_Paginator::factory静态方法时遇到问题。问题是分页控件链接将我发送到正确的URL,但当我单击“下一步”或第2、3页等时,结果将消失 我从数据库中有两个表:一个文件表和一个原始办公表。文件表包含客户的姓名、地址等,发起办公室存储坦帕、萨拉索塔等办公室名称。。每个文件都与发起办公室相关联 我的控制器: public function searchAction() { $searchFor

我正在学习Zend框架。我让Zend_Paginator使用阵列适配器,但使用Zend_Paginator::factory静态方法时遇到问题。问题是分页控件链接将我发送到正确的URL,但当我单击“下一步”或第2、3页等时,结果将消失

我从数据库中有两个表:一个文件表和一个原始办公表。文件表包含客户的姓名、地址等,发起办公室存储坦帕、萨拉索塔等办公室名称。。每个文件都与发起办公室相关联

我的控制器:

public function searchAction()
{

    $searchForm = new Application_Form_SearchForm();
    if ($this->_request->getQuery()) {
        if ($searchForm->isValid($this->_request->getParams())) {
            $officeName = $this->_request->getParam('officeName');
            $page = $this->_request->getParam('page');
        }
        $fileTable = new Application_Model_DbTable_File();
        $this->view->paginator = $fileTable->getFilesByOfficeName($officeName, $page);

    }
    $this->view->searchForm = $searchForm;
}
以下是getFilesByOfficeName方法:

public function getFilesByOfficeName($officeName = null, $page = 1, $count = 12, $range = 15, $scrolling = 'Sliding') 
{
    if (is_null($officeName)) {
        $query = $this->select();
        $paginator = Zend_Paginator::factory($query);
    } else {
        $oofTable = new Application_Model_DbTable_OriginationOffice();
        $query = $oofTable->select();
        $query->where('oof_name like ?', $officeName.'%');
        if ($oofTable->fetchRow($query)) {
            $origination_office = $oofTable->fetchRow($query);
            $files = $origination_office->findDependentRowset($this);
            $paginator = Zend_Paginator::factory($files);
        } else {
            return;
        }
    }
    Zend_Paginator::setDefaultScrollingStyle($scrolling);
    Zend_View_Helper_PaginationControl::setDefaultViewPartial('_pagination_control.phtml');
    $paginator->setDefaultItemCountPerPage($count);
    $paginator->setDefaultPageRange($range);
    $paginator->setCurrentPageNumber($page);
    return $paginator;
}

好的,我想我理解你的问题了。您的链接没有维护初始请求及其URL查询字符串的状态

您可能需要编辑局部视图_pagination_control.phtml以呈现链接中的当前查询字符串

我需要看看你在部分中做了什么才能给出一个准确的答案,但是如果你在最终URL的末尾添加?$\u SERVER['QUERY\u STRING'],这应该会起作用。请参见以下示例:

<!-- Your href may look different but notice I append the query string to the end -->
<a href="<?php echo $this->url(array('page' => $this->last)); ?>?<?php echo $_SERVER['QUERY_STRING'];?>">Last &raquo;</a>

我不明白这个问题。失败点在哪里$fileTable->GetFileByOfficeName$officeName,$page;可以返回false,您是否排除了正在返回您的分页器?@brady.vitrano分页器似乎已返回,即不为false,但当我尝试单击任何其他页面时,分页器会离开结果集?因为似乎需要$\u GET['officeName']参数。但我不确定如何继续提供它,即paginator控件中的链接不提供officeName值。有些事情Zend_paginator不会做,其中之一就是构建HTML。这就是“局部视图”的目的。它确实有效。非常感谢。但是,我的代码是否存在阻止Zend_Paginator自动执行此操作的问题?这似乎应该是一个功能,也就是说,我不需要硬编码。