让我们考虑以下情况:
实体车有多对多CarType,这是一个不同类型的列表,每种类型都可以是活动的或不活动的。
车型:
sapply(indata, class)
Datum Eroeffnung Hoch Tief Schluss
"character" "numeric" "numeric" "numeric" "numeric"
Volumen
"numeric"
在创建阶段,用户创建一个有效$builder->add('type', 'entity', array(
'label' => 'Car Type',
'class' => 'SomeBundle:CarType',
'query_builder' => function (EntityRepository $er) {
$qb = $er->createQueryBuilder('type')
->where('type.status = :status')
->setParameter('status', 'active')
;
return $qb;
}
));
的{{1}}。假设我有一个管理页面标记Car
有效/无效。
处理与非活动Type
有关系的Type
编辑阶段的最佳方法是什么?换句话说,如果Car
与某个时间点处于活动状态并且不再处于活动状态的任何Type
有关系,则该选项不会显示在下拉列表中。
处理像这样的用例的最佳方法是什么dropdwon项目在不同的时间范围内可以具有不同的状态,但查询只返回活动的?
一种方法是提醒用户Car
正在使用某些不活跃的Type
,但还有其他更好的方法吗?
答案 0 :(得分:0)
您可以在管理级别处理问题 (如果他仍然使用过汽车类型,你就不能使其失效)
或者您使用用户级别处理:
您建议只选择主动车+当前不活动的用户选择
这样,用户只能选择更改为活动类型的汽车或保持其过时类型
$qb = $er->createQueryBuilder('type')
->where('type.status = :status')
->orWhere('id = :currentTypeId')
->setParameter('currentTypeId', $someId)
->setParameter('status', 'active')