Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Prestashop 1.6类别中的自定义新输入字段不';救不了_Php_Prestashop 1.6 - Fatal编程技术网

Php Prestashop 1.6类别中的自定义新输入字段不';救不了

Php Prestashop 1.6类别中的自定义新输入字段不';救不了,php,prestashop-1.6,Php,Prestashop 1.6,我是PS的新手,我需要一些帮助。 我是这样做的:并能够添加一个新的自定义字段的管理类别 我设法做到了: -将新字段添加到类别UI -将新值添加到DB -该字段由数据库中的值填充(手动输入) 但是: -我无法从UI插入/更新值(我的自定义字段名为:altname) 我可以看到POST正在将值发送回 AdminCategoriesController核心->后处理() 但是这个值永远不会到达应该将其插入数据库的模型。 有人能告诉我/指给我正确的方向吗 -如何将新值发送到将值插入DB的模型 -PS中的

我是PS的新手,我需要一些帮助。 我是这样做的:并能够添加一个新的自定义字段的管理类别

我设法做到了: -将新字段添加到类别UI -将新值添加到DB -该字段由数据库中的值填充(手动输入)

但是: -我无法从UI插入/更新值(我的自定义字段名为:altname)

我可以看到POST正在将值发送回 AdminCategoriesController核心->后处理()

但是这个值永远不会到达应该将其插入数据库的模型。 有人能告诉我/指给我正确的方向吗 -如何将新值发送到将值插入DB的模型 -PS中的信息流是什么,需要更新和插入哪些函数

更新 我已经确定在AdminController.php文件中有一个postProcess()方法,它具有类似actionAdminSaveBefore的钩子:

Hook::exec('actionAdmin'.ucfirst($this->action).'Before', array('controller' => $this));
但这样的钩子并不存在,我检查了数据库中的所有模块、类、控制器文件、钩子表,通过名为:hooksmanager的免费模块检查了所有可用的钩子,但什么也没找到。有人能告诉我正确的方向,找到这个钩子的代码,我可以检查它的功能吗


谢谢

解决方案

  • 我已经删除了我编写的所有自定义代码
  • 在overwrite/classes下创建一个名为Category.php的新文件
  • 将新字段的名称:altname声明为变量(与数据库中的category_lang表中相同)
  • 复制-粘贴CategoryCore类中的整个对象模型声明
  • 将新字段添加到其中,请参见altname
  • }

    Hook::exec('actionAdmin'.ucfirst($this->action).'Before', array('controller' => $this));
    
    public $altname;
    
    public static $definition = array(
        'table' => 'category',
        'primary' => 'id_category',
        'multilang' => true,
        'multilang_shop' => true,
        'fields' => array(
            'nleft' =>              array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
            'nright' =>             array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
            'level_depth' =>        array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
            'active' =>             array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'required' => true),
            'id_parent' =>          array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
            'id_shop_default' =>    array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId'),
            'is_root_category' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool'),
            'position' =>           array('type' => self::TYPE_INT),
            'date_add' =>           array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
            'date_upd' =>           array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
    
            // Lang fields
            'name' =>               array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
            'altname' =>            array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName',  'size' => 128),
            'link_rewrite' =>       array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
            'description' =>        array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),
            'meta_title' =>         array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 128),
            'meta_description' =>   array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
            'meta_keywords' =>      array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
        ),
    );