PHP Slim - 重定向不起作用

时间:2016-05-10 16:11:18

标签: php redirect slim

我知道这是一个已经有答案的问题,但它们都没有对我有用。出于某种原因,我无法使用:

$app->redirect($app->urlFor('home'));

OR

$app->response->redirect($app->urlFor('home'));

路线' home'已定义,但由于某种原因,Slim只返回一个空的200响应。有什么我做错了吗?

编辑: 完整代码:

$app->get('/gensession', function() use ($app){
    // set up session; this works
    // if I echo anything here, it'll output on the page
    $app->redirect('/'); // This doesn't work, neither does urlFor(<name>)
    return;
});

这只是让我在/ gensession的空白页面。 Slim返回200(OK),没有别的。没有错误。没有输出。

的.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

编辑2: $ app-&gt;响应的输出为:

object(Slim\Http\Response)#113 (5) { ["status":protected]=> int(302) ["headers"]=> object(Slim\Http\Headers)#115 (1) { ["data":protected]=> array(2) { ["Content-Type"]=> string(9) "text/html" ["Location"]=> string(1) "/" } } ["cookies"]=> object(Slim\Http\Cookies)#116 (2) { ["defaults":protected]=> array(6) { ["value"]=> string(0) "" ["domain"]=> NULL ["path"]=> NULL ["expires"]=> NULL ["secure"]=> bool(false) ["httponly"]=> bool(false) } ["data":protected]=> array(0) { } } ["body":protected]=> string(0) "" ["length":protected]=> int(0) }

注意:["status":protected]=> int(302)["Location"]=> string(1) "/"

因此,如果响应对象明确包含这些属性,为什么不将它们返回给客户端?

2 个答案:

答案 0 :(得分:0)

实际答案:

  

我不知道除了更改会话保存路径之外我做了什么,但它现在有效。我决定接受唯一的答案,因为它可能对其他人有所帮助。非常感谢你的所有建议。 - 疯狂的雷德

答案 1 :(得分:-1)

你应该像这样返回重定向:

$app->get('/gensession', function() use ($app){
    return $app->redirect('/');
});