我正在使用Silex,不能在模板中使用is_granted函数.我在文档中找不到有关为什么这不起作用的任何内容.任何提示?
$app->register(new Silex\Provider\SecurityServiceProvider());
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__.'/../templates',
'twig.options' => array('cache' => __DIR__.'/../cache'),
));
$app['debug'] = true;
$app['security.firewalls'] = array(
'login' => array(
'pattern' => '^/login$',
),
'secured' => array(
'pattern' => '^.*$',
'form' => array('login_path' => '/login', 'check_path' => '/login_check'),
'users' => array(
'admin' => array('ROLE_ADMIN', '5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg=='),
),
),
);
$app->get('/', function() use ($app) {
return $app['twig']->render('index.html.twig');
});
$app->get('/login', function(Request $request) use ($app) {
return $app['twig']->render('login.html.twig', array(
'error' => $app['security.last_error']($request),
//'last_username' => $app['session']->get('_security.last_username'),
));
});
Run Code Online (Sandbox Code Playgroud)
显然,我还需要添加symfony/bridge组件:
将其添加到composer.json并更新.
"symfony/twig-bridge": "2.1.*",
Run Code Online (Sandbox Code Playgroud)
嘿......它会像预期的那样工作.