একটি EAV মডেলের _ ডেটা


9

আমি বুঝতে পেরেছি যে একটি সাধারণ মডেলের _ ডেটা (উদাহরণস্বরূপ cataloginventory/stock_item) ক্ষেত্রের মান জোড়ার একটি অ্যারে, যা ডাটাবেস সারণির ক্ষেত্রগুলির সাথে সম্পর্কিত। EAV মডেলের জন্য _ডাটা বিষয়বস্তু সম্পর্কে জানতে আগ্রহী ছিলাম, তাই আমি catalog/productডিবাগ () ফাংশনটি ব্যবহার করার _ডাটাটি পরীক্ষা করেছিলাম ।

সন্ধানটি হ'ল এটিতে ক্ষেত্রটির জুটির catalog_product_entityজোড় এবং এই সত্তার কিছু বৈশিষ্ট্য রয়েছে। তারা আমার বোধগম্য হয়। যে বিষয়টি আমি বুঝতে পারি না তা হ'ল এটিতেও একটি জুড়ি রয়েছে:

...    
[stock_item (Mage_CatalogInventory_Model_Stock_Item)] => Array
            (
                [item_id] => 1
                [product_id] => 1
                [stock_id]
                ......
            )
...

, যা একটি উদাহরণ cataloginventory/stock_item। এটি ক্যাটালগ / পণ্য সত্তার কোনও বৈশিষ্ট্য নয়, না কোনও ক্ষেত্র catalog_product_entity, কেন এটি অন্তর্ভুক্ত করা হয়েছে?

EAV মডেলগুলির জন্য _ ডেটা কনভেনশন রয়েছে?

উত্তর:


6

তত্ত্বে _dataযে কোনও কিছু থাকতে পারে।
আপনি সেখানে নিজের কাস্টম মান যুক্ত করতে পারেন setData($key, $value)
সাধারণত এটি যেমনটি আপনি বলেছেন, টেবিলে থাকা কলামগুলির মানগুলি বা কোনও EAV সত্তার বৈশিষ্ট্যের জন্য থাকে তবে কিছু বিশেষ ক্ষেত্রে এটিতে অন্যান্য মান থাকতে পারে।
উদাহরণস্বরূপ পণ্যগুলির ক্ষেত্রে এটি ঘটে।
এখানে কেন।
মডিউলটিতে Mage_CatalogInventoryইভেন্টটির জন্য একজন পর্যবেক্ষক রয়েছেন catalog_product_load_after। আপনি যখন একবার কল করবেন এই ইভেন্টটি বলা হয় $product->load()
কার্যকরিত পদ্ধতিটি হ'ল Mage_CatalogInventory_Model_Observer::addInventoryData
এই এক কল $productStockItem->assignProduct($product);
যদি আমরা গভীর খনন করি আমরা Mage_CatalogInventory_Model_Stock_Item::assignProductএক পর্যায়ে সেই কলগুলিতে শেষ করি $product->setStockItem($this);। এটি মূল্যবান $product->setData('stock_item', $this)
সুতরাং আপনি Mage_CatalogInventory_Model_Stock_Itemইন দৃষ্টান্ত থাকার শেষ_data['stock_item']

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.