Примечание: Во-первых, внимательно прочитайте вопрос.Как изменить basePath в Zend Framework 2 для модуля
Я новичок в ZF2. Сейчас я работаю над zend framework 2.3. У меня есть три модуля в этом проекте, и я работаю над Wamp.
- Применение ----------- // По умолчанию ZF2 Страница.
- Альбом ------------ // ZF2 Учебник Пример
- Html ------------ // Я создал
У меня есть создал пользовательский макет для модуля Html (последний). Но есть проблема basePath. Я не получаю правильный путь страницы в этом модуле. так что я изменить в HTML/конфигурации/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.
Здесь я делюсь файлом module.config.php для всех 2 модулей.
<?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',
),
),
);
Я хочу знать, где я делаю неправильно и как я буду получать право базового пути по модулю.
Спасибо всем за вклад в этот вопрос.
Я внимательно прочитал ваше сообщение, но довольно сложно понять, чего вы пытаетесь достичь. Это ваша обязанность четко описать вашу проблему, чтобы сообщество могло вам помочь. Попробуйте объяснить, что пошло не так, например: « Php echo $ this-> basePath();?> В index.phtml возвращает '/ htmlmodule' для модуля 'HTML' (правильно), а для модуля 'Album' то же самое, однако я хочу, чтобы он возвращал '/ album'." – Siwei
Да, вы правы Уважаемый ..! Я хочу basePath/public/htmlmodule для html-модуля и общедоступного/альбома basepath для модуля альбома. –