我找不到错误。我无法访问会话变量。 我试试这个:
$app = new Silex\Application();
$app['debug']=true;
$app->register(new Silex\Provider\SessionServiceProvider());
$app->get("/", function(Request $request) use($app)
{
return $app["session"]->get('is_admin');
});
$app->run();
use Symfony\Component\HttpFoundation\Request;
$app->before(function (Request $request, Silex\Application $app){
$app['session']->set('is_admin', true);
});
我这样做是为了解决问题(谢谢Stepashka):
$app = new Silex\Application();
$app['debug']=true;
use Silex\Provider\SessionServiceProvider;
$app->register(new SessionServiceProvider());
$app->before(function() use ($app){
$app['session']->start();
$app['session']->set('is_admin', "dfghjdf");
});
$app->get("/", function() use($app)
{
return print_r($app['session']->get('is_admin'));
});
$app->run();
答案 0 :(得分:1)
事情是你的提供者在$app->run()
之前没有被初始化。您应该在控制器中或至少在$app->run()
之后分配值。
Silex中还有一个Middleware功能,所以你可以这样做:
$app->before(function (Request $request, Application $app) {
$app['session']->set('is_admin', true);
});