2017-10-09 8 views
-1

젠드 프레임 워크 3에서 새로운 컨트롤러 "ArticleController"를 기존의 City City에 추가했지만 실패했습니다. 스크린 샷, 폴더 구조 및 module.config.php 게시. 문제가 무엇인지 설명해 주시겠습니까? 액세스 할 때 http://0.0.0.0:7000/cityzf3에 존재하는 모듈에 새 컨트롤러 추가

에 액세스 할 때 부수적으로, 그것은 일 http://0.0.0.0:7000/article enter image description here enter image description here

다음, 모듈 \ 도시 \ 설정 \ module.config.php 코드는 다음과 같습니다

<?php 

namespace City; 

use Zend\Router\Http\Segment; 

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

    'view_manager' => [ 
     'template_path_stack' => [ 
      'city' => __DIR__ . '/../view', 
     ], 
    ], 
]; 

답변

2

오류 메시지가 분명하다 . 응용 프로그램은 컨트롤러에 대해 아무 것도 모릅니다. 귀하의 모듈 구성 "컨트롤러"키 아래에 컨트롤러에 대한 정보가 있어야합니다. 체크 아웃 zend documentation, 구성 파일에 "컨트롤러"키가 표시됩니다.

+0

답변 해 주셔서 감사 드리며 늦어서 죄송합니다. module.config.php에 "컨트롤러"를 추가하려고했지만 실패했습니다. 그런 다음 해결책을 찾았습니다. City 컨트롤러/src/Module.php의 키 "공장"에 기사 컨트롤러 값을 추가하십시오. 젠드 프레임 워크 튜토리얼을 마친 후 새로운 컨트롤러를 추가하려고 시도했습니다. 자습서는 "공장"을 적용하여 성공하지 못했습니다. https://docs.zendframework.com/tutorials/getting-started/database-and-models/ 죄송합니다, 메멧. – hikozuma

+0

"컨트롤러"설정이 다음과 같다고 가정합니다. [컨트롤러] => [ "공장"=> "MyControllerFactory"]] "컨트롤러"설정 방법입니다. 컨트롤러에 종속성 주입이없는 경우에는 팩토리가 필요하지 않습니다. 그래서 당신은 "invokables"키 아래에 등록 할 것입니다. [ "controllers"=> [ "invokables"=> [ "MyController"]]] –