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 に答える