Silex(Symfony2微框架)在bootstrap.php中重定向

时间:2014-03-31 08:04:48

标签: php session symfony redirect silex

我想在用户会话到期时创建重定向。我知道如何这样做:

$app->before(function (Request $request) {
    if (!$request->getSession()->get('displayName')) {
        return new RedirectResponse('login', 301);
    }
});

问题是我收到错误:Fatal error: Class 'RedirectResponse' not found in /Applications/MAMP/htdocs/pst/app/bootstrap.php on line 120

我也尝试在if语句中添加它:

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

但是app变量没有定义。这样做的正确方法是什么?

更新:
我从Symfony2添加了RedirectResponse函数。但 displayName 并不正确。我倾向于会议,任何人都可以看看它应该是什么? DUMP:http://pastebin.com/7XQbJJ08

在我的layout.twig(一般布局)中我有<span>&nbsp;&nbsp;{{ app.user.displayName }}</span>并且在一段时间后没有反应,他说他无法在null属性上找到属性displayName。

1 个答案:

答案 0 :(得分:1)

对于第一种方法,您需要先确保已导入RedirectResponse。您可以通过在脚本顶部添加以下内容来完成此操作:

use \Symfony\Component\HttpFoundation\RedirectResponse;

如果仍然无法正常工作,那么您可能会遇到自动加载器问题。

对于第二种情况,我不确定$ app是如何被取消定义的。因为这是在你打电话时创建的:

$app = new Silex\Application();