2013-10-21 60 views
0

magento是否具有某種內置限制,可以在多選字段中選擇多少個選項?Magento multiselect限制爲選定選項的數量

我需要定期選擇> 50個選項,除非它似乎無法從我傳遞給它的選項ID數組中選擇超過41個。

我正在使用的代碼是這樣的......其中$ valueIds是選項的數組ID的

if($valuesIds){ 

       $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$trimmedSKU); 
       if($product){ 
       try { 
       $product->setData($this->attrCode, $valuesIds); 
       $product->save(); 
       } catch (Mage_Core_Exception $e) { 
        echo $e->getMessage(); 
       } 
       }else{ 

        echo "SKU $trimmedSKU Does Not Match any Product"; 

       } 
      } 

當這個被只處理數組中的第41項被選中,之後的一切這被忽略。有人知道這可能是爲什麼嗎?

+0

至於我知道沒有限制的規則。你必須檢查你的代碼獲取選項。 –

回答

2

很可能這是MySQL的限制。如果您使用的屬性具有backend_typevarchar那麼限制爲255個字符。
如果是這種情況,請嘗試將backend_type更改爲text,但先備份。您可能會丟失已存在的值。
您可能需要將它們從表catalog_product_entity_varchar移至catalog_product_entity_text

+0

有沒有簡單的方法來改變後端類型?可以在管理員區域完成,還是數據庫更改? – Matthew

+0

您可以從數據庫中更改它。識別表「eav_attribute」中的屬性並更改字段「backend_type」。但就像我說的,你可能會失去現有的價值。 – Marius

+0

我剛剛嘗試過這一點,我遇到了問題,它現在不再保存選定的屬性...不在varchar表或文本表中 – Matthew