我试图让集合原型具有一组默认值而不是空值.理想情况下,我希望能够在模型类或表单定义类中的某处定义那些默认值,但我找不到在任何地方执行此操作的方法.
举个例子:
我为我的表单创建了一个AbstractType,它包含一个嵌套的Person行集合(相关代码如下所示):
public function buildForm(FormBuilder $builder, array $options)
{
...
$builder->add('people', 'collection', array(
'type' => new PersonType(),
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
));
...
}
Run Code Online (Sandbox Code Playgroud)
PersonType类包含以下代码:
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name', 'text');
$builder->add('date_of_birth', 'date');
$builder->add('age', 'number');
// This would be great if I could do this but I can't:
//$builder->add('date_of_birth', 'date', array('empty_value' => new \DateTime(...))); // some default value defined here
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我能够提出的最好的内容显示在下面的视图文件中(显示的代码用于呈现集合原型):
...
<tr>
<td> {{ form_widget(person.name) }} </td>
{# THIS …Run Code Online (Sandbox Code Playgroud) 我有一个产品管理类.Product实体与Category实体具有多对一关系,即产品与类别相关联.
在产品的管理"列表"页面中,我需要按类别名称(按字母顺序)对每个产品的关联进行排序.
如果字段位于实体本身上,则设置默认字段以进行排序很容易(有关如何执行此操作,请参阅Sonata管理包顺序).但我无法弄清楚如何按相关表格中的字段排序.
任何帮助表示赞赏.
我有一个Order实体,可以有多个LineItem实体关联.
我为Order创建了一个Admin类,为LineItem创建了一个Admin类.但我需要LineItem Admin类作为Order Admin类的子级.
在LineItemAdmin类中,我已经设置了protected $parentAssociationMapping = 'order';.
另外,在OrderAdmin类configureFormFields方法中,我添加了->add('lineItems', 'sonata_type_model').
但是,它仍然无效.订单表单中的订单项列表不可点击,因此我无法看到如何从订单管理表单中获取LineItem管理列表页面.
是否需要配置路由?lineItems我需要对表单字段进行更改吗?
很难在Sonata Admin软件包上找到任何好的文档,所以任何帮助都将不胜感激.
PS.即使通过SonataAdminBundle代码也没有帮助,因为代码很难遵循它的复杂性.