Goog计划从一开始就节省了大量时间,我正在努力学习这一点!
有人可以告诉我,我做错了吗?
<?php
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app('default'); // Change default to whatever store you want to run
$model=Mage::getModel('eav/entity_setup','core_setup');
$attributeId=$model->getAttribute('catalog_product','techpage');
$allAttributeSetIds=$model->getAllAttributeSetIds('catalog_product');
foreach ($allAttributeSetIds as $attributeSetId) {
try{
$attributeGroupId=$model- >getAttributeGroup('catalog_product',$attributeSetId,'General');
}
catch(Exception $e)
{
$attributeGroupId=$model->getDefaultArrtibuteGroupId('catalog/product',$attributeSetId);
}
$model- >addAttributeToSet('catalog_product',$attributeSetId,$attributeGroupId,$attributeId);
}
?>
当我在浏览器中运行时,该死的那些吐出来了
“致命错误:未捕获的异常'PDOException'
带有消息
'SQLSTATE [23000]:完整性约束违规:1452无法添加或 更新子行:外键约束失败“
当谈到php和magento时,我并不完全是你所说的“棚内最尖锐的工具”,但在我的搜索中,我发现有很多像我这样的新手在寻找同样的东西,而且没有答案两难困境。
任何有关这方面的帮助都会大大影响我每晚的睡眠时间:)我也打赌其他人, 感谢。
答案 0 :(得分:0)
异常是数据库约束异常。您应该查看catalog_product表,看看它是否有上述代码(间接)违反的任何约束。
答案 1 :(得分:0)
问题是,你的变量$ attributeId不是数字而是数组。 使用这个小修复,它应该工作。
$model->addAttributeToSet('catalog_product', $attributeSetId, $attributeGroupId, $attributeId['attribute_id']);
您使用调试器吗?你可以用xdebug在几分钟内解决这个问题。