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 パラメータを取得してフィルタリングし、現在のパラメータをクリアしてフィルタリングしたパラメータを渡そうとしましたが、1 つの Zend_Framework コードをハードコード編集しない限り、それを行うことはできませんでした :(.
ありがとう