2017-03-06 4 views
0

젠드 프레임 워크 3 MVC 애플리케이션을 만들었습니다. 나는 기본 라우터를 원하지 않는다. 내 하나의 컨트롤러가 RESTFUL이고 JSON 만 반환합니다. 기본 IndexController를 제거하고 싶습니다. 나는 404 에러를주고 싶다. 나는 어떤 경로도 '집'에 전화하지 않기를 원하지만 필요한 경우 그렇게 할 것입니다.기본 라우터가없는 ZF3 애플리케이션을 만드는 가장 좋은 방법은 무엇입니까?

내 경로 설정은 다음과 같이 할 경우

'router' => [ 
    'routes' => [ 
     'myRoute' => [ 
      'type' => Segment::class, 
      'options' => [ 
       'route' => '/myThing[/:action]', 
       'defaults' => [ 
        'controller' => Controller\MyThingController::class, 
        'action'  => 'index', 
       ], 
      ], 
     ], 
    ], 
], 

내가 내 브라우저의 기본 인덱스 컨트롤러 유지하면 작동 경로에 연결할 때 다음과 같은 예외를 얻을 :

Fatal error: Uncaught Zend\Router\Exception\RuntimeException: Route with name "home" not found in /var/www/vendor/zendframework/zend-router/src/Http/TreeRouteStack.php on line 354

변경하는 경우 'myRoute' => ['home' => [ JsonViewModel에서 렌더링 한 Json 대신 기본 레이아웃을 렌더링합니다.

답변

0

이제 defautl 404 페이지를 렌더링하는 기본 경로가있는 IndexController를 배치합니다. 방법을 찾아 내면 어떤 시점에서 JSON을 반환하도록 할 것입니다.

class IndexController extends AbstractRestfulController 
{ 
    public function indexAction() 
    { 
     $this->response->setStatusCode(Response::STATUS_CODE_404); 
    } 
}