Php Magento multiselect限制所选选项的数量
magento是否对在multiselect字段中可以选择的选项数量有某种内置限制 我需要定期选择>50个选项,除非它似乎无法从我传递给它的选项ID数组中选择超过41个 我使用的代码是这样的。。。其中$valueIds是选项ID的数组Php Magento multiselect限制所选选项的数量,php,magento,Php,Magento,magento是否对在multiselect字段中可以选择的选项数量有某种内置限制 我需要定期选择>50个选项,除非它似乎无法从我传递给它的选项ID数组中选择超过41个 我使用的代码是这样的。。。其中$valueIds是选项ID的数组 if($valuesIds){ $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$trimmedSKU);
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项,之后的所有内容都将被忽略。有人知道为什么会这样吗?很可能是MySQL的一个限制。如果您使用的属性具有
后端类型varchar
,则限制为255个字符。
如果是这种情况,请尝试将后端类型
更改为文本
,但首先要备份。您可能会丢失已存在的值。
您可能需要将它们从表catalog\u product\u entity\u varchar
移动到catalog\u product\u entity\u text
,因为我知道没有限制规则。您必须检查代码中的获取选项。是否有简单的方法更改后端类型?这可以在管理区完成,还是数据库更改?您可以从数据库更改它。在表eav\u attribute
中标识属性,并更改字段backend\u type
。但正如我所说,您可能会丢失现有的值。我刚刚尝试了这个,我遇到了一个问题,即它现在不再保存选定的属性。。。不在varchar表或文本表中