我正在使用Prestashop 1.7.2.0,我想在“选项”选项卡中添加到后台产品页面。 我想添加一个额外的ean13字段,名为ean13_current_shop 这是我到目前为止所做的,但它不起作用。
在src / PrestaShopBundle / Form / Admin / Product / ProductOptions.php中 我在最初的ean13之后添加了:
->add('ean13_current_shop', 'Symfony\Component\Form\Extension\Core\Type\TextType', array(
'required' => false,
'error_bubbling' => true,
'label' => $this->translator->trans('EAN-13 or JAN barcodez', [], 'Admin.Catalog.Feature'),
'constraints' => array(
new Assert\Regex("/^[0-9]{0,13}$/"),
)
))
在src / PrestaShopBundle / Model / Product / AdminModelAdapter.php中: 也是在ean13之后:
'ean13_current_shop' => $this->product->ean13_current_shop,
在src / PrestaShopBundle / Resources / views / Admin / Product / form.html.twig中 也是在ean13字段之后:
<fieldset class="col-md-4 form-group">
<label class="form-control-label">
[spam-filter] form.step6.ean13_current_shop.vars.label [spam-filter]
<span class="help-box" data-toggle="popover"
data-content="[spam-filter] "This type of product code is specific to Europe and Japan, but is widely used internationally. It is a superset of the UPC code: all products marked with an EAN will be accepted in North America."|trans({}, 'Admin.Catalog.Help') [spam-filter]" ></span>
</label>
[spam-filter] form_errors(form.step6.ean13_current_shop) [spam-filter]
[spam-filter] form_widget(form.step6.ean13_current_shop) [spam-filter]
</fieldset>
还直接编辑了Product.php类。我补充道:
/** @var string Ean-13 barcode */
public $ean13_current_shop;
和
'ean13_current_shop' => array('type' => self::TYPE_STRING, 'validate' => 'isEan13', 'size' => 13),
我没有收到任何错误,也没有出现错误。我不知道在哪里编辑。 感谢
答案 0 :(得分:0)
从Presta使用Symphony开始,就有大量的管理员缓存。请尝试在Chrome->应用程序->清除存储中打开开发人员工具,然后向下按“清除站点数据”。
从我看来,您还没有修改数据库。
ALTER TABLE ps_product ADD ean13_current_shop varchar(13) NULL DEFAULT ('x');
这应该显示输入内容。
确保在文件src / PrestaShopBundle / Model / Product / AdminModelAdapter.php中,您在[step6]部分中有了新字段。