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。我已经在我的主题中添加了一些内容,你能看一下吗?