Witam
Tworze aplikacje sklepu, dla super admina zrobiłem tabelkę z zarzadzaniem użytkowników, chciałbym zrobić w modalu jedno pole rozwijane do zmiany uprawnień danego użytkownika. Używam Security-Bundle i mam standardową tabelke dla User:
class User implements UserInterface
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=180, unique=true)
*/
private $email;
/**
* @ORM\Column(type="json")
*/
private $roles = ['ROLE_USER'];
/**
* @var string The hashed password
* @ORM\Column(type="string")
*/
private $password;
/**
* @ORM\Column(type="boolean")
*/
private $isVerified = false;
/**
* @ORM\Column(type="datetime")
*/
private $registration_date;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $last_login;
FormType dla formularza:
<?php
namespace App\Form;
use App\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class UserManageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('roles', ChoiceType::class, [
'required' => true,
'multiple' => false,
'expanded' => false,
'choices' => [
'User' => 'ROLE_USER',
'Admin' => 'ROLE_ADMIN',
'Super Admin' => 'ROLE_SUPER_ADMIN',
],
])
->add('submit', SubmitType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => User::class
]);
}
}
Cały czas mam błąd : The form's view data is expected to be a "App\Entity\User", but it is a "array". You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms "array" to an instance of "App\Entity\User".
Rozumiem błąd ale kompletnie nie wiem jak to obejść, gdy zamieniam
'data_class' => User::class
na:
'data_class' => null
To mam taki blad:
Object of class Symfony\Component\Form\FormView could not be converted to string