【发布时间】:2021-03-10 14:13:46
【问题描述】:
我正在开发一个 Sylius 应用程序,并希望在管理后端删除一个表单。
在这种特殊情况下,字段on_hand(在ProductVariant 创建和更新上下文中)不应该可用。 (因为我们直接从供应商那里获取信息并将其自动导入数据库。)我已经找到了正确的模板 (/vendor/sylius/sylius/src/Sylius/Bundle/AdminBundle/Resources/views/ProductVariant/Tab/_inventory.html.twig),在我的应用程序中创建了一个副本并从视图中删除了该字段。但它仍然是表单对象。我找不到任何形式的。好像是生成的,但是看不到这个生成在哪里,怎么从表单生成中排除这个字段。
如何删除字段on_hand并删除?
Sylius 提供的一般情况下如何处理此类情况以及从表单中查找和删除字段?
文档文章“Customizing Forms”说:
你可以:
- 添加全新的字段,
- 修改现有字段,使其成为必需字段,更改其 HTML 类,更改标签等,
- 删除未使用的字段。
...并显示“如果您打算添加新字段”该怎么做。但它并没有解释,如何删除字段——而且它似乎比添加要复杂一些。
到目前为止我尝试了什么:
final class ProductVariantTypeExtension extends AbstractTypeExtension
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
// ->add(...)
// ...
->remove('onHand')
;
}
public static function getExtendedTypes(): iterable
{
return [BaseProductVariantType::class];
}
}
但remove(...) 调用似乎被忽略了。
【问题讨论】:
标签: symfony4 symfony-forms sylius form-fields