在$ app-> boot()

时间:2016-05-02 02:33:12

标签: silex

基于18022890这是我的代码。

/* Register service provider */
// ...
$app->register(new TwigServiceProvider(), array(...));
$app->boot();
$app->register(new SecurityServiceProvider(), array(...));

/* Route collection */
// ....

/* Not found exception */
$app->error(function (\Exception $e, $code) use ($app) {
    if ($app['debug']) return;

    $templates = array(
        'error/'.$code.'.twig',
        'error/'.substr($code, 0, 2).'x.twig',
        'error/'.substr($code, 0, 1).'xx.twig',
        'error/default.twig',
    );

    return new Response($app['twig']->resolveTemplate($templates)->render(array('code' => $code)), $code);
});

仅供参考:我从here收集了路线。

一切似乎都没问题,除了 http://silex.local/undefinedroute 不会显示我的404错误模板。如何处理这种情况?感谢。

1 个答案:

答案 0 :(得分:1)

我更改了注册顺序(安全之前 Twig)而没有$app->boot(),然后显示了我的404错误模板。

/* Register service provider */
// ...
$app->register(new SecurityServiceProvider(), array(...));
$app->register(new TwigServiceProvider(), array(...));