gpt4 book ai didi

php - 如何让 Zend_Controller_Router 默认重置不需要的参数

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

我正在使用 Zend-Framework 1.9.5 来制作一个 web 应用程序,但它的 Url_Helper 在参数重置方面对我来说非常棘手!我知道这是一个很好的功能(参数保留)但在大多数情况下我不知道不需要!。
所以我正在考虑覆盖默认路由器以强制它丢失参数除非我要求它或者可能指定它保持的某些参数(lang,或类似的东西)。

此外,我想让它成为默认路由器,这样我就不必编辑我的 Controller 、 View 来完成这项工作!

有什么建议?

更新:
我花了一上午的时间写我的 url helper Admin_View_Helper_Xurl ,但我无法做任何解决问题的事情:

<?php
class Admin_View_Helper_Xurl extends Zend_View_Helper_Abstract
{
public function xurl(array $urlOptions = array(), $name = 'default', $reset = false, $encode = true)
{
$router = Zend_Controller_Front::getInstance()->getRouter();

$wanted_params = array('module', 'controller', 'action', 'lang', 'page', 'search');

$route = $router->getCurrentRoute();

$something = anyWayToGetThatObjectOrClass();

$params = $something->getParams();

foreach($params as $key => $val) {
if (!in_array($key, $wanted_params)) {
$params[$key] = null; // OR uset($params[$key]);
}
}

$something->clearParams();
$something->setParams($params);

return $router->assemble($urlOptions, $name, $reset, $encode);
}
}

我试图获取当前的 URL 参数并过滤它们并清除当前参数并传递我过滤的参数,但是如果没有硬编码编辑 Zend_Framework 代码,我无法做任何事情:(。

谢谢

最佳答案

生成链接 View 时,您可以要求助手使用简单的 bool 值删除所有参数:

<?php echo $this->url(array('controller' => 'index', action => 'action'), 'default', true); ?>

最后一个参数告诉是否重置参数。

关于php - 如何让 Zend_Controller_Router 默认重置不需要的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1813703/

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