আমি _getProductCollection()
ক্লাসের মেথডে একটি ফিল্টার Mage_Catalog_Block_Product_List
নিম্নরূপে যুক্ত করেছি।
protected function _getProductCollection()
{
...
$this->_productCollection = $layer->getProductCollection();
$this->_productCollection->getSelect()->joinInner(
array('cpe' => 'catalog_product_entity'),
'e.entity_id = cpe.entity_id'
)
->where("cpe.type_id = 'simple'");
...
}
উপরের কোডটি ম্যাজেন্টো সংস্করণ 1.7 হিসাবে সূক্ষ্মভাবে কাজ করছে। তবে যখনই আমি নিম্নলিখিত কোডটি লিখি, এটি দেয়
কলাম পাওয়া যায় নি: 1054 অজানা কলাম 'e.type_id' 'যেখানে ধারা'
ত্রুটি.
কোড (যা কাজ করছে না)।
protected function _getProductCollection()
{
...
$this->_productCollection = $layer->getProductCollection();
$this->_productCollection
->addAttributeToSelect('type_id')
->addAttributeToFilter('type_id','simple');
...
}
এখন প্রশ্ন ।
- আমি যদি প্রথম ওয়ার্কিং কোড ব্যবহার করি তবে কি কোনও কার্যকারিতা প্রভাব ফেলবে?
- একটি সঠিক পণ্য ফিল্টার পেতে অন্য কোন উপায় আছে?
হালনাগাদ:
আমি যখনই নিম্নলিখিত কোডটি প্রয়োগ করি এবং rwd
থিমটি ব্যবহার করি তখন আমি কোনও ত্রুটি পাচ্ছি না। তবে যখনই আমি default
থিমটি ব্যবহার করি তখন নীচের ত্রুটিটি পাই,
কোড
protected function _getProductCollection()
{
...
$this->_productCollection = $layer->getProductCollection();
$this->_productCollection
->addAttributeToSelect('type_id')
->addAttributeToFilter('type_id','simple');
...
}
ত্রুটি
এসকিউএসএলসেট [42 এস 22]: কলামটি পাওয়া যায় নি: 1054 অজানা কলাম 'e.type_id' তে যেখানে 'ক্লজ' রয়েছে, ক্যোয়ারীটি ছিল: নির্বাচন করুন ফ্লোর ((রাউন্ড ((e.min_price) * 1, 2)) / 10) + 1 এএস
range
, COUNT টি (*) আঃcount
থেকেcatalog_product_index_price
আঃe
ভেতরের যোগ দিতেcatalog_category_product_index
আঃcat_index
অন cat_index.product_id = e.entity_id এবং cat_index.store_id = 1 এবং cat_index.visibility (2, 4) ও cat_index.category_id = '3' কোথায় (e
।type_id
ইন ( 'সহজ' )) এবং (e.website_id = '1') এবং (e.customer_group_id = 0) এবং (e.min_price নকল নয়) ফুলের দ্বারা গ্রুপ ((রাউন্ড ((e.min_price) * 1, 2)) / 10) ফ্লোরের মাধ্যমে +1 অর্ডার ((রাউন্ড ((ই। এমিন_প্রাইস) * 1, 2)) / 10) + 1 এএসসি