0

ブートストラップに次のコードがあります

protected function _userSession(){
    $session=new Zend_Session_Namespace("userIdentity");
    $session->greet="Hello!!!!!";
    Zend_Registry::set("session", $session);        
}

そしてコントローラーで私は書きます:

public function index() {
    $session = Zend_Registry::get("session");
    echo $session->greet;        
}

しかし、次のようなエラー メッセージが表示されます: キー 'セッション' のエントリが登録されていません。このコードの何が問題なのですか。任意のソリューション。

4

1 に答える 1

3

ユーザーセッションのブートストラップメソッドを次のように変更するだけでよいと思います_initUserSession()

設定方法に応じて、ブートストラップは、で始まるすべてのメソッドを自動的に呼び出します。_init

ここを参照してください: http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.resource-methods

Zend でデフォルトをindex.php使用している場合、ブートストラップは、で始まるすべてのメソッドを自動的に呼び出します。_init

したがって、次のようなものがある場合:

$application->bootstrap()->run();

しかし、次のようなことをすると:

$application->bootstrap(array(
    'FrontController',
    'Layout',
    'View',
    'Db'))->run();

上記は、配列にリストされているもののinitメソッドのみを呼び出します。

于 2012-05-16T06:09:29.587 に答える