0

dbに保存されているユーザー権限に応じて実行時にメニューを作成したいので、ACLを使用してリソースをグランドおよび取り消しました。

次に、ユーザー権限に応じてメニューをロードします。

これが私のnavigation.phtmlサブページです

<?php

 $resourceLoader = new Application_Plugin_ResourceLoader();
 $namaspace = new Zend_Session_Namespace('Zend_Auth');

 $db = $registry::get('pmodel_Db');

 $roleId = $namaspace->id;
 $module = $resourceLoader->getUserModulesPrivileges($db, $roleId);

 var_dump($module);

?> 

データベースpmodel_Dbをブートストラップにロードしますが、次のような例外が発生します。

 Notice: Undefined variable: registry in D:\wamp\www\zend_apps\inspect\application\layouts\scripts\navigation.phtml on line 6.

この問題は、navigation.phtmlページを含むlayout.phtmlが_initDbRegistry()ブートストラップファイルのメソッドの前にロードされることを意味します。

レイアウトをロードする前にpmodel_Dbをロードするにはどうすればよいですか?

4

1 に答える 1

0

これを使用する必要があります

 $db = Zend_Registry::get('pmodel_Db');

この問題は、navigation.phtmlページを含むlayout.phtmlが、ブートストラップファイルの_initDbRegistry()メソッドの前にロードされることを意味します。

ここで間違っています。Zendは、必要なリソースをブートストラップするまでリクエストをディスパッチしません。

レジストリにアクセスする方法が間違っています。

于 2012-06-05T10:20:55.117 に答える