Apakah ada cara untuk menggunakan ORM sederhana Magento ( Mage_Core_Model_Abstract
dan Mage_Core_Model_Resource_Abstract
) untuk memasukkan baris model dengan kunci primer spesifik?
Misalnya, jika saya menjalankan yang berikut ini terhadap sistem Magento kosong
Mage::getModel('core/website')->setData(array (
'website_id' => 2,
'code' => 'foo',
'name' => 'Main Website',
'sort_order' => 0,
'default_group_id' => 1,
'is_default' => 1,
));
Saya harapkan entri baru di core_website
tabel. Namun, Magento diam-diam tidak melakukan apa pun di sini.
Menggali sumber daya, sepertinya saya tidak setuju dengan ini di kelas sumber daya database
#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
}
Karena model memiliki id (yaitu saya memasukkan ID tertentu), dan karena _useIsObjectNew
sulit dikodekan ke false, permintaan simpan saya selalu dialihkan ke insert
jalur.
Apakah ada cara untuk memaksa sisipan dengan model Magento default? (tanpa penulisan ulang / penggantian kelas).
Ya, SQL mentah adalah sebuah opsi, tetapi kemudian fungsionalitas acara hilang.