gpt4 book ai didi

zend-framework2 - ZF2 - 在分页中使用 url 帮助程序保留来自表单的查询

转载 作者:行者123 更新时间:2023-12-04 07:18:06 26 4
gpt4 key购买 nike

我是 ZF2 的新手,我愿意分享我如何使用 url 帮助程序从表单中保留参数,尤其是在分页期间。我修改了 How can you add query parameters in the ZF2 url view helper 的答案

这是我的做法:

AlbumController.php

// get all the query from url
$input = $form->getData();

$paginator = $this->getAlbumTable()->fetchAll();
$paginator->setCurrentPageNumber((int)$this->params()->fromQuery('page', 1));
$paginator->setItemCountPerPage(30);

// unset the 'page' query if necessary
unset($input['page']);

return array(
'form' => $form,
'paginator' => $paginator,
'routeParams' => array_filter($input) // filter empty value
);

index.phtml

echo $this->paginationControl(
$this->paginator,
'sliding',
array('partial/paginator.phtml', 'Album'),
array(
'route' => 'album',
'routeParams' => $routeParams
)
);

paginator.phtml

<a href="<?php echo $this->url(
$this->route, // your route name
array(), // any url options, e.g action
array('query' => $this->routeParams) // your query params
);
echo (empty($this->routeParams))? '?' : '&'; ?>
page=<?php echo $this->next; ?>">Next Page</a>

如果我错了,请提供更好的解决方案并纠正我。

谢谢

最佳答案

我没有比您更好的解决方案 - 我没有看到在添加一些新参数的同时保留现有查询参数的正确方法。但以下内容比手动附加 & 和 = 字符更简洁:

分页器.phtml

<a href="<?php echo $this->url(
$this->route, // your route name
array(), // any url options, e.g action
// Merge the array with your new value(s)
array('query' => array('page' => $this->next) + $this->routeParams)
); ?>">Next Page</a>

这也将确保如果您已有一个 page 参数,它将被新参数覆盖。

(从技术上讲,您也可以直接使用 $_GET$_POST 并完全避免从 Controller 传递它,但这看起来不太整洁)

关于zend-framework2 - ZF2 - 在分页中使用 url 帮助程序保留来自表单的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17899657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com