2017-02-06 2 views
0

Я хотел бы предоставить formBuilder User Entity как скрытое значение.Дайте значение класса formbuilder как 'hidden'

$form->add('user','hidden',array("data" => $user)) 

$ Пользователь Пользователь.

Однако он показывает эту ошибку.

Expected argument of type "Acme\UserBundle\Entity\User", "string" given

Если я использую «нулевой» вместо «скрытый»

$form->add('user',null,array("data" => $user)) 

он не показывает ошибку и показывает поле выбора пользовательского Entity.

Однако, я бы хотел использовать скрытые. Как это сделать?

ответ

1

Вы did't правильно указать тип поля - это правильный путь:

... 
$formBuilder->add('user', HiddenType::class); 
... 
... 
$form = $formBuilder->getForm(); 
$form->get('user')->setData($user->getId()); 

Но вы не можете присвоить объект в скрытом поле, так что вы можете назначить идентификатор пользователя для идентификации пользователя.

Другим вариантом является, чтобы сделать трансформатор данных и определить собственную EntityHiddenType - подробнее об этом здесь: symfony : can't we have a hidden entity field?

+0

Он по-прежнему показывает ту же ошибку ... – whitebear

+0

я извиняюсь, исправленное –

+0

я вижу, я понял. поставить Entity как скрытое значение невозможно. Вы дадите мне хороший намек. Большое спасибо – whitebear

Смежные вопросы