2

変数「user」がすべてのモジュールに対してグローバルになるようにしたいので、このコードを追加しました

public function onBootstrap(MvcEvent $e)
{
    $eventManager        = $e->getApplication()->getEventManager();

    $e->getViewModel()->setVariable('user',$e->getApplication()->getServiceManager()->get('auth_service')->getIdentity());
}

レイアウト ファイルに対しては問題なく動作します。つまり、layout.phtml で var_dump($user) を実行すると、期待される結果が出力されますが、同じ結果をビューで実行すると、

Notice: 未定義の変数: user in C:\webserver\apache\htdocs...

なぜこれが起こっているのかについての助けはありますか?私は何か間違ったことをしていますか?

4

3 に答える 3

10

Config-Variablesを使用して、アプリケーション全体で利用できるようにします。

// module.config.php
return array(
    'someVariable' => 'someValue',
    // all the other stuff
);

あとは、config にアクセスするだけです。もちろん、アクセスしようとしている場所によってアクセスは異なりますが、最終的には次のように行われます。

// Example for being inside any of your Controllers
$servoceLocator = $this->getServiceLocator();
$config         = $serviceLocator->get('config');
$myValue        = $config['someVariable'];

それが十分に明確であることを願っています。

于 2013-08-28T20:28:51.443 に答える
0

ビューで $this->user を試しましたか?これでうまくいくはずです。

于 2014-01-29T16:46:33.250 に答える