1

如何在 Sonata Admin 中为 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 个对象 Demo 则我有错误:

表单的视图数据应该是类 Alex\TempBundle\Entity\Demo 的一个实例,但它是一个 (n) 整数。您可以通过将“data_class”选项设置为 null 或添加将 a(n) 整数转换为 Alex\TempBundle\Entity\Demo 实例的视图转换器来避免此错误。

4

2 回答 2

0

最简单的方法是在调用 ->add(...) 方法之前分配对象。

您可以先获取对象:

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

现在选定的对象应该是列表的默认值。就我而言,效果很好。

于 2013-09-26T15:14:14.940 回答
0

This is what worked for me:

->add('demo', 'sonata_type_model', array( 'data' => '1' ));
于 2015-12-04T16:53:23.617 回答