1
FOS USERバンドルの管理パネルを作成するためにsonata adminを使用しています。そして、私は '役割'のためにドロップダウンを使用する必要があります。ソナタのFos User bundle rolesフィールドのドロップダウンを使用します。
これは私のadminクラス、
<?php
namespace AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
class UserAdmin extends Admin {
protected function configureFormFields(FormMapper $formMapper) {
$formMapper->add('name', 'text');
$formMapper->add('surname', 'text');
$formMapper->add('username', 'text');
$formMapper->add('email', 'text');
$formMapper->add('telephone', 'text');
$formMapper->add('password', 'text');
$formMapper->add('roles', 'choice', array(
'choices' => array(
'Admin' => 'a:1:{i:0;s:10:"ROLE_ADMIN";}',
'User' => 'a:0:{}',
),
'choices_as_values' => true,
));
}
しかし、私はこのエラーを取得しています、
お知らせ:文字列への変換アレイ500内部サーバーエラー - ContextErrorException
私はこれが部分魔女がエラーを与えると思う、
$formMapper->add('roles', 'choice', array(
'choices' => array(
'Admin' => 'a:1:{i:0;s:10:"ROLE_ADMIN";}',
'User' => 'a:0:{}',
),
'choices_as_values' => true,
));