注意 - 首先,仔细阅读问题。
我是ZF2的新手。现在我正在研究zend框架2.3。我在这个项目中有三个模块,我正在研究Wamp。
我为Html模块创建了一个自定义布局(最后一个)。但是有一个basePath的问题。我没有在这个模块中获得正确的页面路径。所以我在Html / config / module.config.php中更改并在module.config.php中添加以下脚本
'view_manager' => array(
'base_path' => 'zend/public/htmlmodule/',
'template_path_stack' => array(
'html' => __DIR__ . '/../view',
),
),
现在,我正在为这个模块获得正确的基本路径。但是现在basepath会自动更改另外两个模块,例如专辑和应用程序。现在我删除了上面的代码,并在zend\config\autoload\local.php
view_manager' => array(
'base_path' => 'zend/public/htmlmodule/',
'template_path_stack' => array(
'html' => __DIR__ . '/../view',
),
),
现在这个脚本有所有模块的更改路径。
现在,我的问题是,我希望更改特定模块和布局(可选)的基本路径,而不是所有模块,并且需要不同模块的不同基路径。实际上没有右基路径,你将无法获得正确的image / css和js文件。
这里我将共享所有2个模块的module.config.php文件。
<?php
//Album Module > module.config.php
return array(
'controllers' => array(
'invokables' => array(
'Album\Controller\Album' => 'Album\Controller\AlbumController',
),
),
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/][:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'base_path' => 'zend/public/album',
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
);
和HTML模块的module.config.php
是:
<?php
return array(
'controllers' => array(
'invokables' => array(
'Html\Controller\Html' => 'Html\Controller\HtmlController',
),
),
'module_layouts' => array(
'Application' => 'layout/layout.phtml',
'Html' => 'layout/custom.phtml',
),
'router' => array(
'routes' => array(
'html' => array(
'type' => 'segment',
'options' => array(
'route' => '/html[/][:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Html\Controller\Html',
'action' => 'index',
),
),
),
),
),
'view_manager' => array(
'base_path' => 'zend/public/htmlmodule/',
'template_path_stack' => array(
'html' => __DIR__ . '/../view',
),
),
);
我想知道,我在哪里做错了,我将如何根据模块获得正确的基本路径。
感谢所有人提前为这个问题做出贡献。
答案 0 :(得分:1)
为每个视图管理器添加特定的base_path
密钥,然后尝试使用$this->getHelper('basePath')->setBasePath()
为您生成的viewModel确保。
作为一个警告,我完全通过使基本路径成为树中的“最低点”来避免这个问题,在您的情况下:
'view_manager' => array(
'base_path' => 'zend/public/',
'template_path_stack' => array(
'html' => __DIR__ . '/../view',
),
),
然后在模块特定视图中添加模块特定路径部分。因此,如果我想在公共视频文件夹中访问相册特定的css或js文件,那么在我的视图中,我将引用基本路径,只需在路径的其余部分之前添加“/ album”。对你来说不那么头疼我相信如果你这样做的话。