#php #zend-framework #zend-framework2
#php #zend-framework #zend-framework2
Вопрос:
Я разрабатываю приложение в zf2. когда я определяю маршруты module.config.php
и получаю к ним доступ в своем браузере, php выдает ошибку :
Fatal error: Class 'BookListsrcBookListControllerBookController' not found in C:Program Files (x86)EasyPHP-DevServer-14.1VC9datalocalwebprojectsautoclickskeleton-applicationvendorzendframeworkzendframeworklibraryZendServiceManagerAbstractPluginManager.php on line 170
вот мой module.config.php :
return array(
'controllers' => array(
'invokables' => array(
'BookListsrcBookListControllerBook' => 'BookListsrcBookListControllerBookController'
)
),
'router' => array(
'routes' => array(
'book' => array(
'type' => 'segment',
'options' => array(
'route' => '/book[/][:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9] '
),
'defaults' => array(
'controller' => 'BookListsrcBookListControllerBook',
'action' => 'index'
)
)
)
)
),
'view_manager' => array(
'template_path_stack' => array(
'book' => __DIR__ . '/../view'
)
)
У меня есть мое BookController
пространство имен BookListsrcBookListController
Комментарии:
1. вы настроили автозагрузчик для своего модуля?
Ответ №1:
Это должно быть:
'controllers' => array(
'invokables' => array(
'BookListControllerBook' => 'BookListControllerBookController' // <- change key and value
)
),
'router' => array(
'routes' => array(
'book' => array(
'type' => 'segment',
'options' => array(
'route' => '/book[/][:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9] '
),
'defaults' => array(
'controller' => 'BookListControllerBook', // <- change
'action' => 'index'
)
)
)
)
),
Комментарии:
1. Я попробовал и изменил свое пространство имен на BookList Controller для моего класса контроллера, но это не работает
2. Какую ошибку вы получаете сейчас? Каков полный путь к вашему контроллеру book?
3. мой полный путь к классу — skeleton-application module BookList src BookList Controller BookController, и ошибка является неустранимой ошибкой: класс ‘BookList Controller BookController’ не найден в C:Program Файлы (x86)EasyPHP-DevServer-14.1VC9datalocalwebprojectsautoclickskeleton-applicationvendorzendframeworkzendframeworklibraryZendServiceManagerAbstractPluginManager.php в строке 170
4. Вы также сказали в своем вопросе, что ваш контроллер имеет пространство имен as
BookListsrcBookListController
, но это должно бытьBookListController
. Если он по-прежнему не работает, пожалуйста, отредактируйте свой вопрос, чтобы включить первые несколько строк класса контроллера (доclass BookController
строки включительно).
Ответ №2:
Вы не должны указывать путь, а только имя класса, например, remove BookList src part . Пространство имен также не должно содержать папку src
Комментарии:
1. не могли бы вы опубликовать фрагмент кода, пожалуйста, я не завершаю его.
2. смотрите ответ @Tim Fountain