2012-07-18 77 views
0

初始化爲時,例如通過集合調用,我無法將_data array()中的屬性添加到EAV模型(擴展產品模型) (法師:: getResourceModel( '目錄/ product_collection'))。magento - 如何在未初始化時向eav模型添加屬性

我嘗試使用setValue()擴展_construct(),但不工作,這裏_data是空的!

當_data被填滿?

當我有_data設置的產品模型,我可以在初始化階段操縱這個

我不想在db中設置屬性,因爲這個屬性是動態的。

thx for reply! :)

回答

1

你總是可以在_load_after觀察員中做到這一點。

+0

好了,現在我試試吧! 您是否知道集合模型如何在其項目中加載數據? 它調用時會加載它,但是使用哪種方法/類來做到這一點? thx for reply! – 2012-07-18 09:16:21

+0

它有自己的'_load_after'觀察者;-) – 2012-07-18 09:20:30

+1

因此對於產品,您需要'catalog_product_load_after'和'catalog_product_collection_load_after'。 – 2012-07-18 09:23:07

0

加載哪些屬性以及何時加載取決於您在哪裏「站立」以及是否啓用了平面目錄。

一般來說,有裝載到目錄/ product_collection你需要這樣指定它的屬性:

<?php 
$collection = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('my_custom_attribute') 
+0

是的,我想添加一個屬性到產品模型,這不是一個屬性在db。 對於這個範圍,我已經在catalog_product_load_after事件上使用觀察者並使用setData('customAttr','hello')。 – 2012-07-18 12:50:04