2016-09-22 12 views
1

私はちょうど昨日Zend Framework 3 tutorialZend Frameworkの3チュートリアルエラー

を開始しました。しかし、at this step

私はmodules.config.phpモジュール 'アルバム' を持っていたとき、私はこの次のエラーでした:

Zend\ServiceManager\Exception\ServiceNotFoundException 
/var/www/api/vendor/zendframework/zend-servicemanager/src/AbstractPluginManager.php:133 
A plugin by the name "getServiceLocator" was not found in the plugin manager Zend\Mvc\Controller\PluginManager 
#0 /var/www/api/vendor/zendframework/zend-mvc/src/Controller/PluginManager.php(98): Zend\ServiceManager\AbstractPluginManager->get('getServiceLocat...', NULL) 
#1 /var/www/api/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(258): Zend\Mvc\Controller\PluginManager->get('getServiceLocat...', NULL) 
#2 /var/www/api/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(273): Zend\Mvc\Controller\AbstractController->plugin('getServiceLocat...') 
#3 /var/www/api/module/Album/src/Album/Controller/AlbumController.php(104): Zend\Mvc\Controller\AbstractController->__call('getServiceLocat...', Array) 
#4 /var/www/api/module/Album/src/Album/Controller/AlbumController.php(104): Album\Controller\AlbumController->getServiceLocator() 
#5 /var/www/api/module/Album/src/Album/Controller/AlbumController.php(16): Album\Controller\AlbumController->getAlbumTable() 
#6 /var/www/api/vendor/zendframework/zend-mvc/src/Controller/AbstractActionController.php(78): Album\Controller\AlbumController->indexAction() 
#7 /var/www/api/vendor/zendframework/zend-eventmanager/src/EventManager.php(271): Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent)) 
#8 /var/www/api/vendor/zendframework/zend-eventmanager/src/EventManager.php(151): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure)) 
#9 /var/www/api/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(105): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent)) 
#10 /var/www/api/vendor/zendframework/zend-mvc/src/DispatchListener.php(119): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response)) 
#11 /var/www/api/vendor/zendframework/zend-eventmanager/src/EventManager.php(271): Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent)) 
#12 /var/www/api/vendor/zendframework/zend-eventmanager/src/EventManager.php(151): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent), Object(Closure)) 
#13 /var/www/api/vendor/zendframework/zend-mvc/src/Application.php(332): Zend\EventManager\EventManager->triggerEventUntil(Object(Closure), Object(Zend\Mvc\MvcEvent)) 
#14 /var/www/api/public/index.php(48): Zend\Mvc\Application->run() 
#15 {main} 

ができます誰も私を助けてください、私は本当に理解していない、私はちょうどtutoに従います。 ありがとう!あなたのAlbumControllerクラスで

namespace Album; 

use Zend\Router\Http\Segment; 

return [ 

    'router' => [ 
     'routes' => [ 
      'album' => [ 
       'type' => Segment::class, 
       'options' => [ 
        'route' => '/album[/:action[/:id]]', 
        'constraints' => [ 
         'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         'id'  => '[0-9]+', 
        ], 
        'defaults' => [ 
         'controller' => Controller\AlbumController::class, 
         'action'  => 'index', 
        ], 
       ], 
      ], 
     ], 
    ], 

    'view_manager' => [ 
     'template_path_stack' => [ 
      'album' => __DIR__ . '/../view', 
     ], 
    ], 
]; 
+0

私は同じ問題があります – RPichioli

+0

@Cochou 'module/Album/config/module.config.php'を付けてください。 –

+0

@AlFonceはお返事ありがとう!ここをクリック: – Cochou

答えて

0

、あなたはgetServiceLocator()を呼び出すが、あなたはそれを実行する必要はありません。公式のZF3チュートリアルに従っていますか?このチュートリアルでは、getServiceLocator()呼び出しはありません。コントローラから必要なサービスを注入する必要があるので、コントローラからService Managerを取得する必要はありません(これはZF3のやり方です)。

チュートリアルに含まれていないコードをすべてコードから削除することを強くお勧めします。あなたはそれを終了します一度

0

「view_manager」=> [//設定...あなたが本当にあなたのコントローラからのいくつかgetServiceLocator()メソッドを呼び出す必要はありません、なぜ、あなたは理解する(では、深さチュートリアルを含みます)ビュー 'display_not_found_reason' => true、// Page not foundエラーに関する詳細情報を表示するかどうかを制御します。 「display_exceptions」=> trueの場合、//それはあなたが上の行に見ることができるように、あなたは上のいくつかのミスをした

//*** the two parameters shown above MUST be set to FALSE in production systems, because you don't want the site visitors see the details about errors in you site. 
    ////However, you will still be able to retrieve the detailed information from Apache's error.log file 

    'doctype'     => 'HTML5', 
    'not_found_template'  => 'error/404', //defines the TEMPLATE NAME for the 404 error(it will be searched on template_map) 
    'exception_template'  => 'error/index', //defines the TEMPLATE NAME for the unhandled exception error 
    'template_map' => [ 
     'layout/layout'   => __DIR__ . '/../view/layout/default.phtml', 

     'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',    
     'error/404'    => __DIR__ . '/../view/error/404.phtml', 
     'error/index'    => __DIR__ . '/../view/error/index.phtml', 
    ], 
    'template_path_stack' => [ 
     __DIR__ . '/../view', 
    ], 
], 

を未処理の例外に関する情報を表示するかどうかを定義し、そのスタックトレースコード。 「view_manager」キーに属する 'template_path_stack'キーの中にルートをキーとして入れ子にします。あなたのコードと幸運を変えてみてください。