2016-06-13 65 views
-1

我創建了一個模塊,添加通過外部Web服務獲得的運營商。數據庫的addiction正確完成,並在phpmyadmin載體創建。 然而,屏幕的載體中未示出安裝在載體和打印出以下行錯誤:顯示我的運營商錯誤

Warning: strip_tags() expects parameter 1 to be string, array given in C:\xampp\htdocs\prestashop\classes\db\Db.php on line 815

完整方法的代碼是:

public function installCarriers() 
    {   
     $id_lang_default = Language::getIsoById(Configuration::get('PS_LANG_DEFAULT')); 
     $envios = Configuration::get('ENVIOS'); 
     foreach ($envios as $env) 
     {     
       $carrier = new Carrier(); 
       $carrier->name = $env->nombreModo; 
       $carrier->id_tax_rules_group = 0; 
       $carrier->active = TRUE; 
       $carrier->deleted = 0; 
       foreach (Language::getLanguages(true) as $language) 
        $carrier->delay[(int)$language['id_lang']] = $env->periodo_dia; 
       $carrier->shipping_handling = false; 
       $carrier->range_behavior = 0; 
       $carrier->is_module = true; 
       $carrier->is_free = false; 
       $carrier->shipping_external = false; 
       $carrier->external_module_name = (string)$this->name; 
       $carrier->need_range = true; 

       if ($carrier->add()) 
       { 
        // Associate carrier to all groups 
        $groups = Group::getGroups(true); 
        foreach ($groups as $group) 
         Db::getInstance()->insert('carrier_group', array('id_carrier' => (int)$carrier->id, 'id_group' => (int)$group['id_group'])); 

        // Create price range 
        $aux1 = intval($env->precioBase); 
        $aux2 = $aux1+1; 
        $rangePrice = new RangePrice(); 
        $rangePrice->id_carrier = $carrier->id; 
        $rangePrice->delimiter1 = $aux1; 
        $rangePrice->delimiter2 = $aux2; 
        $rangePrice->add(); 

        // Crear el rango de pesos para el carrier 
        $rangeWeight = new RangeWeight(); 
        $rangeWeight->id_carrier = $carrier->id; 
        $rangeWeight->delimiter1 = '0'; 
        $rangeWeight->delimiter2 = '10000'; 
        $rangeWeight->add(); 

        //Calculo del precio incluyendo el IVA (21%) 
        $priceIVA = str_replace(',', '.', $env->precioBase); 
        $priceIVA = (float)$priceIVA + (float)$priceIVA*(float)0.21; 

        // Asociar el carrier a la zona 1 = Europa 
        $zone = Zone::getIdByName('Europe'); 
        Db::getInstance()->insert('carrier_zone', array('id_carrier' => (int)$carrier->id, 'id_zone' => (int)$zone)); 
        Db::getInstance()->insert('delivery', array('id_carrier' => (int)$carrier->id, 'id_range_price' => (int)$rangePrice->id, 'id_range_weight' => (int)$rangeWeight->id, 'id_zone' => (int)$zone, 'price' => $priceIVA)); 



        // Copy the carrier logo 
        copy(dirname(__FILE__).'/views/img/'.$env->urlEmpresa, _PS_SHIP_IMG_DIR_.'/'.(int)$carrier->id.'.jpg'); 

       } 
     } 
    } 
+0

看來你正在爲一個數組設置一個「字符串」變量。在調用add()函數之前檢查所有變量。 – joseantgv

回答

0

檢查對象變量(定義陣列中字段) ,避免多重選擇值並給出數組而不是字符串值(數組=>字符串)。