我想在用户会话到期时创建重定向。我知道如何这样做:
$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> {{ app.user.displayName }}</span>
并且在一段时间后没有反应,他说他无法在null属性上找到属性displayName。
答案 0 :(得分:1)
对于第一种方法,您需要先确保已导入RedirectResponse。您可以通过在脚本顶部添加以下内容来完成此操作:
use \Symfony\Component\HttpFoundation\RedirectResponse;
如果仍然无法正常工作,那么您可能会遇到自动加载器问题。
对于第二种情况,我不确定$ app是如何被取消定义的。因为这是在你打电话时创建的:
$app = new Silex\Application();