我有一个silex BootableProvider来检查每个请求上的某些要求,然后执行对我的任何端点的调用。所有的作品都很好,除了当我使用$ app-> abort('403','禁止出于某种原因');在boot()方法的任何地方,响应总是返回代码200.'禁止'消息正确显示并且如预期的那样中断执行,但是没有有意义的响应状态代码使得处理这些故障变得困难/麻烦响应。在BootableProviderInterface上的silex abort()会忽略提供的代码,响应总是有200个
我使用的是silex 2.0.4。
但是,如果我在任何实现ControllerProviderInterface的终端执行$ app-> abort(...),在同一请求线程中,响应具有我在中止中指定的正确响应代码,所以我我认为这是一个时间问题。
任何意见,不胜感激。
示例代码:
class BootProvider implements BootableProviderInterface {
function boot(Application $app) {
$app->abort(403, 'not allowed');
}
}
...
$app->register(new My\Api\BootProvider());
我试过路过头重写状态无济于事。
谢谢!
的确叫我在开机的方法产生只是一个未经处理的异常。您的建议非常适合我的使用。这正是我需要的,我非常感谢! (ps。我已经投了票,但没有足够的票数来显示,谢谢!) –
只接受我的回答) –
完成,对不起,第一次来这里......谢谢! –