jjzjj

php - 在 Magento 中创建 Product 时违反完整性约束

coder 2024-05-03 原文

我正在尝试从 magento 前端创建产品,但是在执行 php 代码时我收到此错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`magento`.`catalog_product_entity`, CONSTRAINT `FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID` FOREIGN KEY (`attribute_set_id`) REFERENCES `eav_attribute_set` (`attribute_set_id`) ON DE)

我在这里找到:Create a product from PHP - Magento这应该是属性集 ID 的问题,但我尝试从 eav_attribute_set 表强制 ID,然后使用函数:

Mage::getModel('catalog/config')->getAttributeSetId('catalog_product','Set_evento')

并且具有上述功能但具有“默认”值。没变化。那么也许问题不在于属性集 ID?

这是我的代码:

$product = Mage::getModel('catalog/product');

$product->setSku(time());
$product->setName("Evento senza nome");
$product->setDescription("123");
$product->setShortDescription("1234");
$product->setPrice(0.00);
$product->setTypeId('virtual');
$attributeSetId = Mage::getModel('catalog/config')->getAttributeSetId('catalog_product','Set_evento');
$product->setAttributeSetId($attributeSetId); 
$product->setCategoryIds(array($cat_id)); 
$product->setVisibility(4); // catalog, search
$product->setStatus(1); // enabled

// assign product to the default website
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));

// for stock
$stockData = $product->getStockData();
$stockData['qty'] = 1;
$stockData['is_in_stock'] = 1;
$product->setStockData($stockData);

$product->setCreatedAt(strtotime('now'));

Mage::app()->getStore()->setId(Mage_Core_Model_App::ADMIN_STORE_ID);

$product->save();

谢谢!

最佳答案

请检查您是否设置了有效的$attributeSetId,如果Mage::getModel('catalog/config')->getAttributeSetId('catalog_product','Set_evento') 成功返回了一个有效的 ID。

我遇到了同样的错误,设置有效的属性集 ID 解决了我的问题。

关于php - 在 Magento 中创建 Product 时违反完整性约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13113019/

有关php - 在 Magento 中创建 Product 时违反完整性约束的更多相关文章

  1. javascript - jQuery UI 日期选择器将不会显示 - 包含完整代码 - 2

    我在显示jQuery日期选择器时遇到问题,如下所示:http://jqueryui.com/demos/datepicker/我相信我下载了所有正确的文件,但可以肯定的是,我从头开始并撕掉了演示站点。不是全部,但我认为是重要的部分。结果是没有要显示的日期选择器,也没有javascript错误。这是我的完整代码示例:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">&l

  2. javascript - 如何在键入时验证 Magento Javascript 中的表单 - 2

    Magento有很棒的Javascript验证库,可以初始化varmyForm=newVarienForm('[yourformid]',true);。但是,当单击提交按钮时会触发此验证功能。没有办法在您键入时验证特定字段。例如,如果我输入2位邮政编码并转到第二个字段,它应该立即验证邮政编码并显示错误。由于邮政编码至少需要5位数字。谢谢 最佳答案 是的,Magento提供了很棒的验证库。您可以使用“validate”方法为每个字段调用验证。例如要验证邮政编码,您可以观察blur事件并调用validate方法。$('billi

  3. javascript - 在 javascript/jquery 中获取完整尺寸的图像 - 2

    我在页面上有一张图像,它已调整大小以适应div,例如400x300。如何在jQuery中获取图像的完整尺寸(~4000x3000)?.width()和.height()似乎只返回图像的当前大小。 最佳答案 图像具有naturalWidth和naturalHeight属性,它们包含图像的实际、未修改的宽度和高度,即图像的实际尺寸,而不是CSS设置的尺寸虽然仍然需要等待图像加载$('#idOfMyimg').on('load',function(){varheight=this.naturalHeight

  4. javascript - Firebase 在 dataSnapshot 中获取引用 URL 的完整路径(javascript API) - 2

    假设我有以下内容:varfirebaseARef=newFirebase("http://this.is.my/firebase/url/A/reference")varfirebaseBRef=newFirebase("http://this.is.my/firebase/url/B/reference")当我定义我的.on()函数时,我想指定一个处理程序,然后在我的代码中的一个地方完成所有处理,而不是必须定义与.on()定义内联的函数。举例说明:varhandleAllFirebaseStuff=function(dataSnapshot){varn

  5. javascript - 如何在 JavaScript 中创建数学数字 1e6? - 2

    如何使用JavaScript创建数字1e6?varveryLargeNumber=//1e6 最佳答案 这里有一些不同的方法:varveryLargeNumber=1e6;varveryLargeNumber=1.0e+06;varveryLargeNumber=1000000;varveryLargeNumber=0xf4240;varveryLargeNumber=03641100;varveryLargeNumber=Math.pow(10,6); 关于javascript-如何在

  6. javascript - 访问 componentDidMount 中创建的变量 - 2

    我有一个在componentDidMount()中创建的变量,我希望它在componentDidUpdate()中可用。有什么想法吗?代码如下所示:classExampleextendsComponent{componentDidMount(){constmyVariable='thisthing';}componentDidUpdate(){//I'dlikemyvariabletobeaccessiblehereconsole.log(myVariable);}render(){...}} 最佳答案 然后

  7. javascript - 我怎样才能在 moment.js/javascript 中人性化这个完整的持续时间 - 2

    我有一个用于文件上传的“剩余时间”计数器。计算剩余持续时间并将其转换为毫秒,如下所示:varelapsedTime=e.timeStamp-timestarted;varspeed=e.loaded/elapsedTime;varestimatedTotalTime=e.totalSize/speed;vartimeLeftInSeconds=(estimatedTotalTime-elapsedTime)/1000;然后我构建了一个数组,我打算将其构建为人性化的字符串。数组如下:vartime={years:Math.round(moment.duration(timeLeftInS

  8. javascript - NivoSlider 在 magento 上运行不流畅 - 2

    我正在尝试实现nivoslider在我的magento安装上。我只是复制粘贴downloadeddemopackage中的内容(我已经在我的firefox上测试过并且运行非常流畅)到magento。我做了所有的功课将所有需要的js和css文件复制到我的主题的皮肤文件夹中在page.xml中添加这些文件<referencename="head"><actionmethod="addCss"><stylesheet>css/styles.css</stylesheet></action>...<

  9. javascript - page.xml 中的 Magento skin_js 路径 - 2

    我尝试通过它的page.xml添加带有自定义模板的javascript,如下所示:<actionmethod="addItem"><type>skin_js</type><name>myjs.js#notify</name></action>Notify将抛出一个警告窗口,以便我可以在重新加载后检查它是否正确。此外,我检查源代码以查看它试图去往何处。模板已正确设置且缓存已刷新。使用上面的脚本,它转到:<scripttype="text/javascript"src="h

  10. javascript - 如何合并两个数组以在 JavaScript 中创建一个数组? - 2

    假设我在JavaScript中有两个数组:vargeoff=['one','two'];vardegeoff=['three','four'];如何合并这两个数组,生成这样的数组?vargeoffdegeoff=['one','two','three','four']; 最佳答案 vargeoffdegeoff=geoff.concat(degeoff); 关于

随机推荐

  1. javascript - Ajax 请求。哪个回调先执行完成或成功? - 2

    我可以点击它来找出答案,但我将使用SO。在我的单元测试(qunit)中,我使用asynchShould(asynchTest的别名)测试。断言的一部分是等待请求的完成/成功。像这样:asyncShould('talktocustomerlistserver',1,function(){stop(2000);varforCustomerList=newCustomerListRequest();forCustomerList.page='helpers/helper.php';forCustomerList.data+='&action=c

  2. Javascript:获取鼠标相对于父元素的位置 - 2

    有什么方法可以获取鼠标相对于父元素的位置吗?假设我有一个结构:<divid="parent"><spanclass="dot"></span></div>当我将鼠标移到span上时我需要获取其相对于其父元素(<divid="parent">)的位置。PageX/ClientX给我相对于页面/客户区的位置,所以它对我不起作用。 最佳答案 从事件的clientX和clientY中的鼠标位置减去您可以通过getBoundingCli

  3. javascript - 如何检测浏览器是否在 JavaScript 中遇到 JavaScript 错误? - 2

    出于自动化测试的原因,我想检测浏览器是否遇到了页面的JavaScript错误。会导致Firebug右下角的红色数字或InternetExplorer状态栏中的黄色警告图标的事件类型。这些JS错误可能来自大量脚本中的任何一个。我如何在JavaScript中检测这些浏览器错误?首选跨浏览器解决方案,但是嘿,我什么都接受!作为奖励,知道导致错误的脚本也很棒。 最佳答案 window.onerror处理程序就是答案。读这个-http://www.javascriptkit.com/javatutors/error.shtml要获得有关导致错

  4. javascript - 使用 JavaScript 创建永久链接 - 2

    我有一个文本框,用户可以在其中输入如下字符串:"helloworld!Ithinkthat__i__amawesome(yesIam!)"我需要像这样创建一个正确的URL:hello-world-i-think-that-i-am-awesome-yes-i-am如何使用正则表达式来完成?此外,是否可以使用希腊语(例如)来完成?"Γειασουκόσμε"转向geia-sou-kosme在其他编程语言(Python/Ruby)中,我使用的是翻译数组。我应该在这里做同样的事情吗? 最佳答案 试试这个:f

  5. javascript - 如何在粘贴事件期间获取字段的值? - 2

    我有一个文本字段,我将paste事件绑定(bind)到使用JQuery。当我第一次将某些内容粘贴到表单字段并记录其val()时,它返回一个空字符串。同样,如果我再次粘贴到字段中,它会返回粘贴前的值。本质上我有一个竞争条件或排序问题,因为没有更好的术语。在粘贴事件完成之前,表单字段似乎不会更新。在粘贴事件完成并实际填充该字段后,是否有任何方法可以检查该字段的值?我想要实际的字段值,而不是剪贴板数据,因为我知道这是IE独有的功能。$('#url').bind('paste',function(e){alert($(this).val());});

  6. javascript - 有没有为旧版本实现新的 Javascript/Ecmascript 5 方法的库? - 2

    虽然Ecmascript5引入了一些全新的特性,它还添加了一些新方法(绑定(bind)、trim、映射等),这些方法在当前版本中应该完全可以实现(尽管速度较慢)。是否存在实现这些向后兼容功能的库(不包括Prototype等) 最佳答案 KrisKowal和friend们构建了es5-shim。它是Narwhal的一部分,但现在独立存在:http://github.com/kriskowal/es5-shim/是:我开始使用narwhal的global-es5.jsshim:http://github.com/280north/nar

  7. javascript - JQuery 用户界面;停止可选事件的传播 - 2

    基本上我用的是jQueryui'sselectableul上的功能,但ul通常会有一个滚动条,并且此滚动条在Webkit浏览器中变得不可用,因为当您尝试单击它以获取它时,会绘制可选功能的套索而不是超越。我制定了一个解决方案,其中涉及检查光标相对于ul的位置和宽度的位置,以查看光标是否在滚动条上,如果是,则停止传播可选择的“开始”事件,但是尽管条件在应该满足的时候得到了满足,但无论是返回false还是停止事件的传播似乎都无法阻止jQuery通过可选择的事件进行。这是我为jQuery.selectablestart事件准备的内容:start:function(event,ui){v

  8. javascript - 我可以使用 JavaScript 设置 'name' 属性吗? - 2

    根据SitePoint(以及我自己的实验),“setAttribute()”的IE实现存在错误且不可靠。同样根据SitePoint,name属性是只读的。还有其他方法可以设置元素的name属性吗?我需要这个用于单选按钮。如果可能的话,我想要一个没有jQuery的解决方案,因为我目前没有使用该库。提前致谢! 最佳答案 这对我有用alert(document.getElementById('testInput').name);document.getElementById('testInput').nam

  9. javascript - 如何沿路径为 Raphael 对象设置动画? - 2

    对象可以很简单,矩形或圆形。但路径应该是贝塞尔曲线。请提供javascript/Raphael代码的话不太麻烦。如果动画中有移动物体的拖尾效果就好了。 最佳答案 以防万一您尝试将它与RaphaelJS2一起使用(animateAlong不再存在),您可以在这里看到一个可能的解决方案:http://jsfiddle.net/gyeSf/17/.原始讨论在这里:https://groups.google.com/forum/#!searchin/raphaeljs/animatealong/raphaeljs/W9bA0SkArVY/K

  10. javascript - 删除?来自 document.location.search - 2

    如何将document.location.search放入不带“?”的变量中是否有简单的正则表达式,或者我可以忽略第一个字符? 最佳答案 没问题window.location.search.substr(1);编辑我第一次没想到,但你应该指的是window.location,而不是document.location。它具有最广泛的浏览器支持。https://developer.mozilla.org/En/Document.location#Notes 关于javascript-删除?来