2013-09-24 2 views
1

Как установить значение по умолчанию в Sonata Admin для sonata_type_model_list?sonata_type_model_list - установить значение по умолчанию?

Для текста я могу:

->add('title', 'text', array('required' => false, 'data' => 'default value')) 

, но я стараюсь:

->add('demo', 'sonata_type_model_list', array('data' => 1)) 

тогда у меня есть сообщение об ошибке:

Class 1 does not exist 

Если я пройти вместо 1 объекта Demo с идентификатором: 1, то у меня есть ошибка:

The form's view data is expected to be an instance of class Alex\TempBundle\Entity\Demo, but is a(n) integer. You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms a(n) integer to an instance of Alex\TempBundle\Entity\Demo.

+0

Вы делаете это как '-> добавить ('демо', 'sonata_type_model_list', массив ('данные' => $ myDemo))' где '$ myDemo' является экземпляром 'Demo'? Поскольку ошибка явно заявляет, что вы передали целое число, а не объект. – TautrimasPajarskas

ответ

0

Простейший способ сделать это - назначить объект перед вызовом метода -> add (...).

Вы можете получить объект первым:

// Load your associated object 
$object = new DemoObject(); 
$formObject = $this->getSubject(); 
$formObject->setDemo($object); 

Теперь выбранный объект должен быть по умолчанию значение списка. В моем случае это работает довольно хорошо.

0

Это то, что работает для меня:

->add('demo', 'sonata_type_model', array('data' => '1'));