2017-03-06 8 views
0

私はZend Framework 3 MVCアプリケーションを作った。私はデフォルトのルーターを望んでいません。私の1つのコントローラーは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); 
    } 
} 
関連する問題