0

对 Slim Framework php 有疑问。

在我的应用程序中,如果条件不匹配,我想停止应用程序的执行。

根据 Slim 文档,有一个停止功能。但这似乎不起作用。即使在调用 Halt 之后,应用程序也会继续执行。

伪代码:

if ( $valid ) {
         // Do something
} else {
    $app->halt(500, "not valid");
}
// Other code here.


$app->run();

我期待着,我们调用 Halt 函数,“其他代码”不应该执行。但似乎并非如此。

有任何想法吗?

4

4 回答 4

7

停止应该工作。正如 Josh 所提到的,它确实需要从路由回调中调用。例如,如果找不到指定的路由,我将以下内容用作自定义 404(在 index.php 中)。

    // not found (custom 404)
    $app->notFound(function () use ($app) {

            // build response
            $response = array(
                'type' => 'not_found',
                'message' => 'The requested resource does not exist.'
            );

            // output response
            $app->halt(404, json_encode($response));

    });

请注意使用 ($app) 的参考——更多信息可以在这里找到:http ://www.slimframework.com/documentation/stable#scope-resolution

于 2012-05-31T07:09:03.927 回答
2

Halt 只能在路由回调的上下文中调用。我建议您在官方 Slim Framework 支持论坛上提问:

http://help.slimframework.com

最好的问候,乔希

于 2012-04-18T01:33:02.630 回答
1

您始终可以exit手动调用以停止脚本执行。

$app->halt(500, "not valid");
exit;
于 2012-04-17T19:48:38.037 回答
0

如果您在回调函数中,则可以使用 return

return $app->halt(500,"message");

或者

$app->stop();

停止功能后。

于 2015-02-26T15:06:24.187 回答