Prestashop ModuleAdminController - 编辑错误

问题描述

我很关心这个问题.. 基本上我正在构建一个 ModuleAdminController,一切正常,直到我必须编辑一行:

当我设置标识符时

 $this->identifier = "id_product";

控制器中该行的编辑按钮不起作用,重定向到同一页面

我做错了什么?有没有办法从查询获取 id_product 而不在标识符中使用它?

class AdminCustomExtraTabsController extends ModuleAdminController
{
    public function __construct(){
           $this->table = "product_lang";
           $this->bootstrap = true;
           $this->name = 'AdminCustomExtraTabs';
           parent::__construct();
           
           $this->context = Context::getContext();
          
    }
    
    public function initContent()
    {
        parent::initContent();
        
        return $this->module->display(_PS_MODULE_DIR_.'Custom Extra Tabs','views/templates/admin/configure.tpl');
    }
    public function renderList() {
            $this->addRowAction('edit');
            $this->identifier('id_product');
            $this->_join = ' LEFT JOIN `'. _DB_PREFIX_ . 'product` pr ON pr.id_product=a.id_product';
            $this->_select = 'pr.reference';
        
         $this->fields_list = array(
                'id_product' => array(
                    'title' => $this->module->getTranslator()->trans('ID Prodotto',array(),'Admin.Global'),'width' => 25
                ),'reference' => array(
                    'title' => $this->module->getTranslator()->trans('Riferimento ','width' => 50
                ),'Note_Olfattive' => array(
                    'title' => $this->module->getTranslator()->trans('Note Olfattive','Consigli_Applicazione' => array(
                    'title' => $this->module->getTranslator()->trans('Consigli Applicazione','Lista_Ingredienti' => array(
                    'title' => $this->module->getTranslator()->trans('Lista Ingredienti','Video' => array(
             'title' => $this->module->getTranslator()->trans('Video','width' => 100
        ),);
      

            $lists = parent::renderList();
            parent::initToolbar();
        
            return html_entity_decode($lists);
        }
    
    public function renderForm(){
         $this->fields_form = array( 
            'tinymce' => true,'input' => array(
                array(
                    'type' => 'text','label' => $this->module->getTranslator()->trans('Note Olfattive:','name' => 'Note_Olfattive','size' => 40
                ),array(
                    'type' => 'text','label' => $this->module->getTranslator()->trans('Consigli Applicazione:','name' => 'Consigli_Applicazione','label' => $this->module->getTranslator()->trans('Lista Ingredienti:','name' => 'Lista_Ingredienti','label' => $this->module->getTranslator()->trans('Video (link):','name' => 'Video','size' => 100
                ),),'submit' => array(
                'title' => $this->module->getTranslator()->trans('Save','class' => 'btn btn-default pull-right'
                )
        );
        if (Shop::isFeatureActive())
                $this->fields_form['input'][] = array(
                        'type' => 'shop','label' => $this->module->getTranslator()->trans('Shop association:','name' => 'checkBoxShopAsso',);
            
        
        return parent::renderForm();
    }
    
    public function postProcess(){
         $id_product = (int)Tools::getValue('id_product');
         $customTabs = new CustomExtraTabs();
            
         $customTabs->noteOlfattive = Tools::getValue('Note_Olfattive');
         $customTabs->consigliApplicazione = Tools::getValue('Consigli_Applicazione');
         $customTabs->listaIngredienti = Tools::getValue('Lista_Ingredienti');
     /*
         echo $id_product;
         echo $customTabs->noteOlfattive;
         echo $customTabs->consigliApplicazione;
         echo $customTabs->listaIngredienti;
         */
         return parent::postProcess();
    }
    

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)