Belirli bir birincil anahtarla model satırları eklemek için Magento'nun basit ORM'sini ( Mage_Core_Model_Abstract
ve Mage_Core_Model_Resource_Abstract
) kullanmanın bir yolu var mı ?
Örneğin, aşağıdakileri boş bir Magento sistemine karşı çalıştırırsam
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
Tabloda yeni bir giriş beklerdim . Ancak, Magento sessizce burada hiçbir şey yapmaz.
Kaynağa girerken, veritabanı kaynak sınıfında bundan düşüyorum gibi görünüyor
#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
}
Modelin bir kimliği olduğu için (yani belirli bir kimlik ekliyorum) ve _useIsObjectNew
sabit olarak false değerine kodlandığından, kaydetme isteğim her zaman yola yönlendirilir insert
.
Bir ucu varsayılan Magento modelleriyle zorlamanın bir yolu var mı? (yeniden yazma / sınıf değiştirme olmadan).
Evet, ham SQL bir seçenektir ancak olay işlevselliği kaybolur.