2016-08-27 1 views
0

Следуя вашему проекту в блоге. Скопируйте/вставьте код, но столкнулись с проблемой, описанной ниже. Я был бы признателен за вашу помощь с кодом, который я перенес в репозиторий Git Farsideman/Zend-Framework-2-Doctrine2 --- Blog-tutorial. Я не могу понять это даже при чтении опубликованных ответов на подобные вопросы.Для Nukeface: Zend Framework 2 + Doctrine2 - Блог tutorialZend Mvc Controller ControllerManager :: createFromInvokable: не удалось получить

Zend \ Mvc \ Controller \ ControllerManager :: createFromInvokable: не удалось получить "blogcontrollerpost (псевдоним: Блог \ Контроллер \ Почта)" через invokable класс "Блог \ Контроллер \ PostController"; класс не существует

Благодаря

Farsideman

ответ

0

Ого, почти год, не понял, вопрос был размещен. Извини за это.

Надеюсь, вы выяснили это сейчас, на всякий случай: проблема означает, что он не может найти указанный контроллер.

Это наиболее вероятно (и большая часть времени) возникает, когда ошибка возникает в конфигурации модуля или если файлы не находятся в точном правильном каталоге с буквально заглавными буквами.

Итак, убедитесь, что структура контроллера выглядит следующим образом, начиная с корня проекта:

/module/Blog/src/Controller/PostController.php 

Далее, проверьте файл module.config.php и убедитесь, что у вас есть это, точно так, как показано ниже:

'controllers' => [ 
    'invokables' => [ 
     'Blog\\Controller\\Post' => 'Blog\\Controller\\PostController', 
    ], 
], 

Здесь Blog\\Controller\\Post это псевдоним (альтернативное имя) для Blog\\Controller\\PostController.

, что он пытается использовать псевдоним (без контроллера) является установка в routes.config.php, где он сконфигурирован, что он должен использовать класс с этим совмещенного именем и определенной функции, например:

//routeName: blog 
//route: /blog 
'blog' => [ 
    'type'   => 'Literal', 
    'may_terminate' => true, 
    'options'  => [ 
     'route' => '/blog', 
    'defaults' => [ 
     'module'  => 'Blog', 
     'controller' => 'Blog\\Controller\\Post', 
     'action'  => 'index', 
     ], 
    ], 
], 

Все из приведенное выше содержится в главе «Configure module» этого учебника.

Обратите внимание: учебник был опубликован примерно в середине 2016 года, здесь «n», он немного устарел.

Кроме того, в качестве стороны, в AbstractActionController.php классе, добавьте следующее:

/** 
* {@inheritdoc} 
*/ 
public function getServiceLocator() 
{ 
    return $this->getServiceLocator(); 
} 

Это приведет к перезаписи его родителей функция, которая включает в себя гигантское предупреждение, что эта функция устарела и ее функциональность, снятую в Zend Framework 3 .

 Смежные вопросы

  • Нет связанных вопросов^_^