Prestashop 1.7 - 覆盖 Symfony 表单约束
Posted
技术标签:
【中文标题】Prestashop 1.7 - 覆盖 Symfony 表单约束【英文标题】:Prestashop 1.7 - Override Symfony form constraints 【发布时间】:2021-09-27 04:35:33 【问题描述】:上下文
我正在尝试更改产品名称属性的约束并将字段长度增加到 300 个字符。
问题
在src/PrestaShopBundle/Form/Admin/Product/ProductInformation.php
,我可以改:
->add('name', TranslateType::class, [
'type' => FormType\TextType::class,
'options' => [
'constraints' => [
new Assert\Regex([
'pattern' => '/[<>;=#]/',
'match' => false,
]),
new Assert\NotBlank(),
new Assert\Length(['min' => 3, 'max' => 128]),
],
],
])
到
->add('name', TranslateType::class, [
'type' => FormType\TextType::class,
'options' => [
'constraints' => [
new Assert\Regex([
'pattern' => '/[<>;=#]/',
'match' => false,
]),
new Assert\NotBlank(),
new Assert\Length(['min' => 3, 'max' => 300]),
],
],
])
而且.. 它有效。但是如果 PrestaShop 更新会发生什么。我需要一种更优雅的方式来做到这一点。
更新#1
官方 PrestaShop Github 存储库中有 PR。我正在等待答案:https://github.com/PrestaShop/PrestaShop/issues/23977
【问题讨论】:
类似Services
的东西? devdocs.prestashop.com/1.7/modules/concepts/services
【参考方案1】:
经典的方式是覆盖模型,在本例中是/override/classes/Product.php
在静态 $definition 上,您将名称字段、大小属性从 128 更改为 300
【讨论】:
谢谢,但我已经这样做了。我的问题涉及长度限制..以上是关于Prestashop 1.7 - 覆盖 Symfony 表单约束的主要内容,如果未能解决你的问题,请参考以下文章
Prestashop 1.7 - 覆盖 homeslider 模块控制器(hookdisplayHeader javascript)
如何在 prestashop 1.7 中添加 Mobile_Detect.php?