我试图在我的引导文件中捕获一个 URL 参数,但经过几次尝试我无法做到。
我已经尝试过了,但它不起作用:
protected function _initGetLang() {
$frontController = Zend_Controller_Front::getInstance();
$lang= $frontController->getParam('lang');
}
这是正确的方法吗?
谢谢。
我试图在我的引导文件中捕获一个 URL 参数,但经过几次尝试我无法做到。
我已经尝试过了,但它不起作用:
protected function _initGetLang() {
$frontController = Zend_Controller_Front::getInstance();
$lang= $frontController->getParam('lang');
}
这是正确的方法吗?
谢谢。
您将无法从引导程序访问请求参数,因为它尚未完成调度/路由过程。我认为使用Controller Plugin会更好地为您服务,基于 URL 执行操作是他们最擅长的。或者,如果您绝对必须在引导程序中执行此操作,getRequestUri()
或者$_GET
可用,或者您可以编写一个快速脚本来自己解析 url。
编辑:
在我弄清楚插件是如何工作的之前,我过去做过一些类似这样的愚蠢的事情:
/**
* Grab the module name without a request instance
*
* @return string The module name
*/
public static function getModuleName()
{
$uri = ltrim($_SERVER["REQUEST_URI"], "/");
$module = substr($uri, 0, strpos($uri, "/"));
return $module;
}
这至少会给你一个你可以switch
在引导程序中使用的模块名称。不过,您应该能够使用正确完成的插件做任何您需要的事情。