2017-03-06 30 views
0

我有這樣的代碼中,匹配部分航線從JSON文件來認爲:Silex的觸發404錯誤匹配回調

$this->app->match($routePattern, function(Request $request, \Silex\Application $app) use($routeIdent, $templateConfig) { 

      //now here i need to check some conditions and, 
      //in case, trigger 404 error, but without redirect!!!! 

      if($templateConfig['test'] === true){ 
      //----> TRIGGER 404 
      } 

    }); 

有一種方法來處理呢?

回答

1

我不確定是否正確理解您的問題。你是否想在404中實現404處理?一種解決方案就是在那裏回覆回覆。例如。如果你使用使用的Symfony \分量\ HttpFoundation \ Response對象和內置的樹枝服務,您可以做到這一點像:

use Symfony\Component\HttpFoundation\Response  

$this->app->match($routePattern, function(Request $request, \Silex\Application $app) use($routeIdent, $templateConfig) { 

    if($templateConfig['test'] === true){ 
     //----> TRIGGER 404 
     return new Response($app['twig']->render('404.html.twig'), 404); 
    } 
}) 

我希望那是你所期待的。

1

您可以使用abort()

return $app->abort(404); 

返回時並不需要,因爲它拋出,我只是喜歡用它作爲信令,但它作爲一個出口點的方式。