Atribut backend_type = statis?


23

Dapatkah seseorang menjelaskan pentingnya / relevansi backend_type statis untuk suatu atribut?

Saya mengalami beberapa masalah dengan atribut yang tidak dimuat dan saya bertanya-tanya apakah ini backend_typeada hubungannya dengan itu?

Juga, apakah ini terkait dalam beberapa hal seperti apa yang dimasukkan ke dalam tabel datar?

Jawaban:


37

Atribut statis adalah atribut yang disimpan dalam tabel utama suatu entitas - untuk produk katalog catalog_product_entity,. Sebagai contoh, atribut skuproduk katalog didefinisikan sebagai static. Atribut statis selalu dimuat oleh Magento, dan berguna terutama jika Anda ingin mengambil informasi dengan cepat atau untuk mengoptimalkan pencarian data. Kelemahan dari tipe atribut ini adalah Anda tidak dapat memiliki nilai spesifik toko, yang merupakan salah satu keunggulan sistem Magento EAV.

Bahkan jika Anda mendefinisikan atribut sebagai static, Magento tidak akan memperlakukannya seperti itu kecuali jika Anda memiliki kolom yang sesuai di tabel entitas utama. Jika kolom tidak ada di sana, Magento memperlakukan atribut sebagai varchardefault dan mencarinya di tabel EAV varchar untuk model - untuk produk catalog_product_entity_varchar,.

Jika Anda ingin menggunakan atribut statis dalam proyek Anda, Anda harus melakukan 2 hal di skrip instal / pemutakhiran Anda. Pertama, Anda perlu menambahkan kolom ke tabel entitas utama, dengan definisi kolom yang benar. Selanjutnya, Anda perlu menginstal atribut Anda menggunakan addAttribute()metode ini, dan mendefinisikan atribut Anda sebagai static. Silakan merujuk ke skrip instal Mage_Cataloguntuk lebih memahami bagaimana hal-hal bekerja dalam kasus ini.

Jika Anda berencana untuk sering menjalankan kueri berdasarkan atribut statis khusus Anda, pertimbangkan untuk menambahkan indeks pada kolom baru untuk mempercepat pengambilan data.


1
category_ids bersifat statis. itu tidak ada dalam tabel catalog_product_entity_varchar.
ahnbizcad

ringkasan: statis berarti nilainya adalah kolom catalog_product_entity, dan jika tidak, itu akan kembali ke memeriksa di catalog_product_entity_varchar.
ahnbizcad

1

Berikut ini contoh dari inti:

$installer->run("
    ALTER TABLE `{$installer->getTable('catalog/product')}` ADD `has_options` SMALLINT(1) NOT NULL DEFAULT '0';
");

$installer->addAttribute('catalog_product', 'has_options', array(
    'type' => 'static',
    'visible'=>false,
    'default' => false
));

1
Apa hubungannya dengan pertanyaan ini?
Marius

@Marius, ini hanyalah contoh cara menambahkan atribut statis.
Roman Snitko

Misalkan Anda menambahkan kolom langsung ke DB melalui MySQL. Bagaimana Anda bisa mengubah JENIS atribut produk yang ada menjadi STATIC? Pertanyaan: bisakah kita memperbarui tipe = statis di tabel tertentu dan itu akan berhasil?
snh_nl
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.