为什么prestashop不将我的修改保存到数据库中?使用prestashop 1.7
/override/classes/Product.php
class Product extends ProductCore {
public $por_gan; public function __construct ($idProduct = null, $idLang = null, $idShop = null) {
$definition = self::$definition;
$definition['fields']['por_gan'] = array('type' => self::TYPE_INT, 'required' => false);
parent::__construct($idProduct, $idLang, $idShop); } }
在ProductInformation.php中
->add('por_gan', 'Symfony\Component\Form\Extension\Core\Type\NumberType', array(
'required' => false,
'label' => $this->translator->trans('Beneficio', [], 'Admin.Catalog.Feature'),
'constraints' => array(
new Assert\NotBlank(),
new Assert\Type(array('type' => 'numeric'))
),
))
在form.html.twing中
<div class="col-md-6">
<label class="form-control-label">% de beneficio</label
{{ form_widget(form.step1.por_gan) }}
</div>
谢谢
2 回答
我已成功在管理产品页面中添加了一个额外的标签 . 它工作正常 . 我认为更好的方法是创建一个模块,以便更容易维护 .
或者你可以使用
displayAdminProductsExtra hook, actionProductUpdate hook and actionProductAdd
额外的字段是:frais_a_prevoir
我显示了要修改的所有文件,但你必须检查文件内部的修改位置(进行搜索,你会发现)
覆盖
/classes/Product.php
在课程
/classes/Product.php
中,有3个修改:1)
2)
3)
在/src/PrestaShopBundle/Resources/views/Admin/Product/form.html.twig
在/src/PrestaShopBundle/Form/Admin/Product/productInformation.php
在src / PrestaShopBundle / Model / Product / AdminModelAdapter.php中:
2)
在数据库中,在表product_lang中添加
frais_a_prevoir
列这是使用模块执行此操作的选项,不会更改核心文件
在你的MyModule.php中
在你的display-admin-products-extra.html.twig中