bootstrap.php中的Silex(Symfony2 micro framework)重定向

bootstrap.php中的Silex(Symfony2 micro framework)重定向,php,session,symfony,redirect,silex,Php,Session,Symfony,Redirect,Silex,我想在用户会话到期时创建重定向。我知道如何这样做: $app->before(function (Request $request) { if (!$request->getSession()->get('displayName')) { return new RedirectResponse('login', 301); } }); 问题是我得到了错误:致命错误:在第120行的/Applications/MAMP/htdocs/pst/app

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

$app->before(function (Request $request) {
    if (!$request->getSession()->get('displayName')) {
        return new RedirectResponse('login', 301);
    }
});
问题是我得到了错误:
致命错误:在第120行的/Applications/MAMP/htdocs/pst/app/bootstrap.php中找不到类“RedirectResponse”

我还试图在if语句中添加以下内容:

$app->get('/', function () use ($app) {
   return $app->redirect('/hello');
});
但是app变量没有定义。正确的方法是什么

更新:
我从Symfony2添加了重定向响应函数。但是显示名不正确。我被session甩了,有人能看看应该是什么吗?
转储:


在我的layout.twig(general layout)中,我有
{{{app.user.displayName}}
,过了一段时间没有反应,他说他在空属性上找不到属性displayName。

对于第一种方法,您需要确保首先导入了重定向响应。可以通过将以下内容添加到脚本顶部来完成此操作:

use \Symfony\Component\HttpFoundation\RedirectResponse;
如果这仍然不起作用,那么您可能有自动加载器问题

对于第二种情况,我不确定$app是如何定义的。因为这将在您调用时创建:

$app = new Silex\Application();

您能否显示完整的
bootstrap.php
内容?您是否忘记了在文件顶部使用Symfony\Component\HttpFoundation\RedirectResponse
?我不确定displayName的含义是否不正确。它不在会话对象的转储中。你确定这已经在会话中设置好了吗?我已经更新了我的begin post。我已经在我的主题中添加了一些内容,你能看一下吗?