2013-09-24 154 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 

如果我通过,而不是与ID 1个对象演示: 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'));