क्या एक विशिष्ट प्राथमिक कुंजी के साथ मॉडल पंक्तियों को सम्मिलित करने के लिए Magento के साधारण ORM ( Mage_Core_Model_Abstract
और Mage_Core_Model_Resource_Abstract
) का उपयोग करने का एक तरीका है ?
उदाहरण के लिए, अगर मैं एक खाली Magento सिस्टम के खिलाफ निम्नलिखित भाग गया
Mage::getModel('core/website')->setData(array (
'website_id' => 2,
'code' => 'foo',
'name' => 'Main Website',
'sort_order' => 0,
'default_group_id' => 1,
'is_default' => 1,
));
मुझे core_website
तालिका में एक नई प्रविष्टि की उम्मीद है । हालांकि, Magento चुपचाप यहाँ कुछ भी नहीं करता है।
संसाधन में खोदना, ऐसा लगता है कि मैं डेटाबेस संसाधन वर्ग में इससे दूर हो रहा हूं
#File: app/code/core/Mage/Core/Model/Resource/Db/Abstract.php
if (!is_null($object->getId()) && (!$this->_useIsObjectNew || !$object->isObjectNew())) {
//update stuff here
}
else
{
//insert stuff here
}
क्योंकि मॉडल में एक आईडी है (यानी मैं एक विशिष्ट आईडी डाल रहा हूं), और क्योंकि _useIsObjectNew
गलत को कोडित किया गया है, इसलिए मेरा अनुरोध हमेशा insert
पथ पर रूट किया जाता है।
वहाँ डिफ़ॉल्ट Magento मॉडल के साथ एक डालने के लिए मजबूर करने का एक तरीका है? (फिर से लिखे बिना / वर्ग-प्रतिस्थापन)।
हां, कच्चा एसक्यूएल एक विकल्प है, लेकिन तब घटना कार्यक्षमता खो जाती है।