我有这个剧本
$cmsPage = Array (
'title' => 'Test Page 1',
'root_template' => 'one_column',
'identifier' => 'testpage1',
'content' => "<p>Testowa sprawa czy działa update ? oooooooooooo</p>",
'is_active' => 1,
'stores' => array(1),
'sort_order' => 0
);
$collection = Mage::getModel('cms/page')->getCollection()->addFieldToFilter('identifier', 'testpage1');
$page = Mage::getModel('cms/page')->load($collection->getFirstItem()->getId());
$page->setData($cmsPage)->save();
如果存在标识符为“ testpage1”的cms页面,则脚本将创建另一个具有相同标识符的页面。有没有一种方法可以检查cmspage是否存在-如果正确,请进行更新吗?
调用时,请$page->setData($cmsPage)
从Mage_Cms_Model_Page
对象中删除所有数据,然后将其替换为$cmsPage
数组中的数据。您要删除的部分数据page_id
来自对象的内部$_data
数组。将page_id
对象映射到cms_page
数据库表中的列的。通过删除该ID,您可以使Magento运行INSERT
查询而不是UPDATE
。
这样的事情应该起作用:
$pageId = $collection = Mage::getModel('cms/page')->getCollection()->addFieldToFilter('identifier', 'testpage1')->getFirstItem()->getId();
$page = Mage::getModel('cms/page')->load($pageId);
$cmsPage = Array (
'page_id' => $pageId,
'title' => 'Test Page 1',
'root_template' => 'one_column',
'identifier' => 'testpage1',
'content' => "<p>Testowa sprawa czy działa update ? oooooooooooo</p>",
'is_active' => 1,
'stores' => array(1),
'sort_order' => 0
);
$page->setData($cmsPage)->save();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句