7

我试图在我的引导文件中捕获一个 URL 参数,但经过几次尝试我无法做到。

我已经尝试过了,但它不起作用:

protected function _initGetLang() {
  $frontController = Zend_Controller_Front::getInstance();
  $lang= $frontController->getParam('lang');
}

这是正确的方法吗?

谢谢。

4

1 回答 1

9

您将无法从引导程序访问请求参数,因为它尚未完成调度/路由过程。我认为使用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在引导程序中使用的模块名称。不过,您应该能够使用正确完成的插件做任何您需要的事情。

于 2009-10-20T11:31:59.210 回答