আমি _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 এএসসি