我有一个显示大量数据的页面,包括Zend_Paginator。
页面操作为/po/fetch?id=someID
。
我想要做的是将“id”参数传递给zend paginationControl,这样分页链接就像/po/fetch?id=someID&page=somePage
。不幸的是,我无法找到关于如何将该参数传递给paginationControl的任何解释。
我对paginationControl的调用:
echo $view->paginationControl($paginator, 'Sliding',$control, $params);
其中$params = array('id' => someID
我的分页部分是:
<a href=<?= $url.'&page='.$this->first; ?> id="first"> First </a>
<a href=<?= $url.'&page='.$this->previous; ?> id="previous">< Previous</a>
<?php
foreach($this->pagesInRange as $page) {
?>
<a href="<?= $url.'&page='.$page; ?>">.$page.</a> | ;
<?php
}
?>
<a href=<?= $url.'&page='.$this->next;?> id="next"> Next ></a>
<a href=<?= $url.'&page='.$this->last; ?> id="last"> Last </a>
我希望$url
具有指定的格式。
答案 0 :(得分:10)
$this->id
答案 1 :(得分:9)
嘿试试这个,肯定会有用.....
<a href="<?php echo $this->url(array('page' => $page,'id'=>'1')); ?>">
<?php echo $page; ?>
</a>
这里给出1
作为你必须传递你想要的身份证的身份.......
像
<a href="<?php echo $this->url(array('page' => $page,'id'=>$param['id'])); ?>">
<?php echo $page; ?>
</a>
答案 2 :(得分:3)
您的示例代码未显示填充$url
的方式,但您确实应该使用网址ViewHelper。
因此,例如 - 您之前的链接将变为:
<a href=<?php echo $this->url(array('page' => $this->previous)); ?> id="previous">< Previous</a>
这将返回当前页面的正确URL,page
参数设置为$this->previous
。因此,如果当前网址为/users/view?foo=bar&page=5
,则上述代码将为前一个链接输出/users/view?foo=bar&page=4
。请注意如何保留已存在的任何查询参数。
因此,如果显示您的分页器的URL上已存在id
参数,则上述代码将“正常工作”。但是,如果您仍需要添加id
参数,则可以这样执行:
<a href=<?php echo $this->url(array('page' => $this->previous, 'id' => $this->id)); ?> id="previous">< Previous</a>
要继续我们之前的示例,此代码将输出以下网址:/users/view?foo=bar&page=4&id={someId}
以下是URL ViewHelper的参考文档:
url($ urlOptions,$ name,$ reset): 根据命名创建URL字符串 路线。 $ urlOptions应该是一个 键/值对的关联数组 由特定路线使用。
最后一个注意事项 - URL ViewHelper的$reset
(第三个)参数将非常方便。默认行为是保留当前请求的任何查询参数,但为$this->url(array(), 'default', true)
参数true
调用$reset
将基本删除除$urlOptions
中指定的参数之外的所有参数}。
答案 3 :(得分:0)
我遇到了同样的问题,所以我在部分分页器中使用了下面给出的代码。
我在paginator部分视图文件( override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
switch editingStyle {
case .Delete:
let context = fetchedResultsController.managedObjectContext
let section = indexPath.section
let currentRow = indexPath.row
for index in 0...currentRow {
let indexPathToDelete = NSIndexPath(forRow: index, inSection: section)
let objectToDelete = fetchedResultsController.objectAtIndexPath(indexPathToDelete) as! NSManagedObject
context.deleteObject(objectToDelete)
}
do {
try context.save()
} catch let error as NSError {
print(error)
}
case .Insert, .None: break
}
}
)中创建了一个函数,或者可能不同。
control.phtml
现在我正在使用下面给出的代码链接。
function queryStr($p){
$params = $array = Zend_Controller_Front::getInstance()->getRequest()->getQuery();
$params['page']=$p;
$str='?';
foreach($params as $k=>$v){
if($v)
$str .= $k.'='.$v.'&';
}
return $str;
}
而不是
<a href="<?php echo queryStr($page); ?>">
我相信它对其他人也有帮助。