コントローラからの変数はビューに表示されず、ビューヘルパーは機能しません。たとえば、コントローラで変数を定義します。
$this->view->title = "Title";
ビューに印刷します。
echo $this->title;
変数「titles」の内容はページに表示されません。
これが私のブートストラップファイルです:
use ZFBootstrap\View\Helper\Navigation\Menu;
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload() {
require_once '../application/views/helpers/LoggedInAs.php';//need to include a view-helper
require_once '../application/plugins/AuthPlugin.php';
require_once '../application/configs/configAcl.php';
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin($auth = new AuthPlugin());
$frontController->getRouter()->addDefaultRoutes();
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
$this->bootstrap('layout');
$layout=$this->getResource('layout');
$view=$layout->getView();
$config = new Zend_Config_Xml(APPLICATION_PATH. '/configs/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
$view->registerHelper(new Menu(), 'menu');
$view->navigation($container);
Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($acl);
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
$role = ($auth->hasIdentity() && !empty($auth->getIdentity()->role))
? $auth->getIdentity()->role : 'guest';
Zend_View_Helper_Navigation_HelperAbstract::setDefaultRole($role);
$view->navigation()->menu()->render();
$view->navigation()->menu()->setMinDepth(1)->setUlClass('nav');
}
代わりにこのコードを使用する場合
use ZFBootstrap\View\Helper\Navigation\Menu;
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload() {
require_once '../application/plugins/AuthPlugin.php';
require_once '../application/configs/configAcl.php';
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin($auth = new AuthPlugin());
$frontController->getRouter()->addDefaultRoutes();
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
/*$this->bootstrap('layout');
$layout=$this->getResource('layout');
$view=$layout->getView();*/
$config = new Zend_Config_Xml(APPLICATION_PATH. '/configs/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
/*$view = Zend_Layout::startMvc()->getView();
$view->registerHelper(new Menu(), 'menu');
$view->navigation($container);//->setAcl($acl)->setRole($auth->getStorage()->read()->role);
*/Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($acl);
$auth = Zend_Auth::getInstance();
$identity = $auth->getIdentity();
$role = ($auth->hasIdentity() && !empty($auth->getIdentity()->role))
? $auth->getIdentity()->role : 'guest';
Zend_View_Helper_Navigation_HelperAbstract::setDefaultRole($role);
/*$view->navigation()->menu()->render();
$view->navigation()->menu()->setMinDepth(1)->setUlClass('nav');*/
}
ナビゲーションを除いてすべてが機能します。問題は、ナビゲーションが機能しない理由と、それを修正するにはどうすればよいかということです。