我如何在symfony中从fosuserbundle渲染角色

时间:2014-02-26 08:13:24

标签: php symfony fosuserbundle

我正在使用symfony和FosUserBUndle

我已经制作了简单的表格并且工作正常

但我无法呈现roles

中定义的FOS User.php

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Model/User.php#L113

如果我这样做

->add('roles', 'text')然后我收到此错误

Notice: Array to string conversion in /var/www/html/symfony/app/cache/dev/twig/86/d9/65467411897d4c5c4ef7c0a4bb1a3d4efd01b5d7b4d913636761fd36ee9e.php line 158

1 个答案:

答案 0 :(得分:2)

角色作为数组存储在数据库中。例如:

a:2:{i:0;s:10:"ROLE_ADMIN";i:1;s:9:"ROLE_NEWS";}

因此您无法将数组渲染为文本。尝试使用选项,其中'choices'是带有角色的数组:

->add('roles', 'choice', array(
    'choices'   => array('ROLE_ADMIN' => 'ROLE_USER', 'ROLE_ADMIN' => 'ROLE_ADMIN'),
    'required'  => false,
));