Slim 中 $app->Redirect 和 $app->response->redirect 的区别

Difference between $app->Redirect and $app->response->redirect in Slim

这个问题有点模棱两可,很抱歉。

基本上,我正在编写一个使用 Slim 作为框架的网站,但我注意到有两种不同(但常见)的重定向方式。使用 $app->redirect()$app->response->redirect();

根据我在文档中看到的内容,除了 $app->redirect() 会抛出异常(Slim 会捕获),或者在什么地方使用哪个之外,没有什么可以表明两者之间的区别。并且对该主题的研究仅显示 $app->response->redirect() 应该在 MiddleWare 中使用,但没有其他信息。所以我的问题是你应该在何时何地使用 $app->response->redirect(); 而不是 $app->redirect(),反之亦然。

$app->redirect() 只是一个辅助函数。它将您的呼叫委托给 $app->response->redirect().

参见 Github 上的代码:

//Slim.php

public function redirect($url, $status = 302)
{
    $this->response->redirect($url, $status);
    $this->halt($status);
}