我正在使用 Zend-Framework 1.9.5 来制作一个 web 应用程序,但是在参数重置的问题上,Url_Helper 对我来说非常棘手!,我知道这是一个很好的功能(参数保留),但在大多数情况下我没有不需要它!所以我正在考虑覆盖默认路由器以强制它丢失参数,除非我要求它或者可能指定它保持的某些参数(lang 或类似的东西)。
另外我想让它成为默认路由器,这样我就不必编辑我的控制器、视图来完成它!
有什么建议么?
更新:
我整个上午都在尝试编写我的 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 代码,我将无法做任何事情:(。
谢谢