【发布时间】:2021-07-10 00:23:11
【问题描述】:
使用实体管理我扩展了订单行项目,添加了一些我需要的新字段、更新的架构等,新字段出现在订单视图页面的行项目网格中,但没有任何内容添加到订单编辑模式..我对购物清单行项目做了同样的事情,新字段出现在查看/编辑和添加行项目表单上,那么订单有什么问题以及如何在那里添加新字段?
更新: 查看订单编辑模板,我发现模板中没有字段定义,并且每个行项目字段都是通过表单部分呈现的。所以我找到的唯一可行的解决方案是更改 Oro\Bundle\OrderBundle\Form\Type\OrderLineItemType 的 oro 源代码,为我的字段添加部分
public function buildView(FormView $view, FormInterface $form, array $options)
{
parent::buildView($view, $form, $options);
$this->getSectionProvider()->addSections(
\get_class($this),
[
'start_date' => ['data' => ['startDate' => []], 'order' => 5],
'end_date' => ['data' => ['endDate' => []], 'order' => 6],
]
);
}
它们出现在订单编辑中。但是修改 oro 源代码是不可接受的,所以我创建了我的自定义 class CustomOrderLineItemType extends OrderLineItemType
并添加了迁移以替换 OrderLineItem 的现有表单类型.. 并且它不起作用,似乎 oro 仍然使用内部类,为什么?
class UpdateOrderLineItemFormType implements Migration
{
/**
* {@inheritdoc}
*/
public function up(Schema $schema, QueryBag $queries)
{
$queries->addQuery(
new UpdateEntityConfigEntityValueQuery(
OrderLineItem::class,
'form',
'form_type',
CustomOrderLineItemType::class
)
);
}
}
【问题讨论】:
标签: orocommerce