2016-05-20 4 views
0

、ここではアプリ内に注入カスタムエラーハンドラの例です:スリム3アクティベートカスタムエラーハンドラ

$container = new \Slim\Container(); 
$container['customError'] = function($c){ 
    return function ($request, $response) use ($c) { 
     $output = ['success'=>0, 'error'=>"Custom Error Output."]; 
     return $c['response'] 
      ->withStatus(400) 
      ->withHeader('Content-Type', 'application/json') 
      ->write(json_encode($output)); 
    }; 
}; 
$app = new \Slim\App($container); 

私の質問は、私はこのカスタムエラーをトリガしないか、でしょうか?

答えて

1

カスタムエラーがコンテナにあることがわかりました。ちょうどそれを呼び出します。しかし、return function ($request, $response) use ($c) {use($c)が必要とは思われません。ここで

はサンプルコードです:

<?php 

$container = new \Slim\Container(); 

$container['customError'] = function($c){ 
    return function ($request, $response) { 
     $output = ['success'=>0, 'error'=>"Custom Error Output."]; 
     return $response 
      ->withStatus(400) 
      ->withHeader('Content-Type', 'application/json') 
      ->write(json_encode($output)); 
    }; 
}; 

// init 
$app = new \Slim\App($container); 

// route 
$app->get('/error-page', function ($request, $response, $args) { 
    $customError = $this->get('customError'); 
    return $customError($request, $response); 
}); 
関連する問題