6
votes

Twig_error_syntax: La fonction "is_granted" n'existe pas

J'utilise SILEX et je ne peux pas utiliser la fonction IS_GRANTED dans un modèle. Je ne trouve rien dans les documents sur la raison pour laquelle cela ne fonctionne pas. Toute astuce? XXX


0 commentaires

5 Réponses :


11
votes

Apparemment, j'avais besoin d'ajouter les composants Symfony / Bridge également:

Ajoutez ceci au compositeur.json et mettez à jour. P>

"symfony/twig-bridge": "2.1.*",


1 commentaires

Et bien que je ne puisse pas le trouver, cela devrait être la façon dont vous ajoutez une brindille à SILEX. Twig-Bridge comprendra automatiquement Twig / Twig.



4
votes

J'ai dû utiliser cette solution de contournement (je ne sais pas encore pas encore si des inconvénients) xxx


4 commentaires

Naabys, avez-vous trouvé une autre solution plutôt que d'utiliser cela?


Eh bien, pas encore, mais je travaille réellement sur un autre projet SILEX où je vais essayer une autre façon de le faire. Je vous tiens au courant


J'ai fini par utiliser le vôtre mais configurez ma candidature différemment - si vous êtes intéressé, voici un lien < / a> pour mon architecture actuelle.


Il semble être bon travail. Et vous avez utilisé ma licence préférée! ;) Fourchue.



2
votes

Selon le Symfony \ Composant \ Security \ Core \ SecurityContexTorface Nous devons fournir le deuxième paramètre que les droits que nous essayons d'évaluer. Le deuxième paramètre sera envoyé à l'électeur (par exemple, un utilisateur) xxx


0 commentaires

0
votes

Le problème est probablement causé par l'ordre d'enregistrement de cours. La commande doit être SecurityServiceProvider puis démarrer votre application puis l'enregistrement TwigServiceProvider. TwigServiceProvider vérifie l'application $ [«Sécurité»] à configurer Twig Securitextension. Ainsi commander compte xxx


0 commentaires

0
votes

Si vous utilisez les composants Symfony 2.6, il devient Security.Authorization_Checker Strong> au lieu de Sécurité forte>, comme dans:

$function = new Twig_SimpleFunction('is_granted', function($role,$object = null) use ($app){
    return $app['security.authorization_checker']->isGranted($role,$object);
});
$app['twig']->addFunction($function);


0 commentaires