我正在處理選項,以添加一些額外的信息,如圖像。我用option_type_id和option_id將這些數據保存到我自己的表中。現在在前端我想加入我自己的表格數據到默認選項。所以這些選項帶有圖像信息。Magento如何獲得一些額外的信息選項
$_option->getValues()
這個函數返回選項的數據,現在我有這個功能,它生成查詢的執行到達,所以我可以添加結合到一起,找回我自己的數據。
謝謝
我正在處理選項,以添加一些額外的信息,如圖像。我用option_type_id和option_id將這些數據保存到我自己的表中。現在在前端我想加入我自己的表格數據到默認選項。所以這些選項帶有圖像信息。Magento如何獲得一些額外的信息選項
$_option->getValues()
這個函數返回選項的數據,現在我有這個功能,它生成查詢的執行到達,所以我可以添加結合到一起,找回我自己的數據。
謝謝
這是我從中獲得了成功。
我重寫產品
class MYC_COPSwatch_Model_Resource_Product_Option_Collection extends Mage_Catalog_Model_Resource_Product_Option_Collection{
public function addValuesToResult($storeId = null)
{
if ($storeId === null) {
$storeId = Mage::app()->getStore()->getId();
}
$optionIds = array();
foreach ($this as $option) {
$optionIds[] = $option->getId();
}
if (!empty($optionIds)) {
/** @var $values Mage_Catalog_Model_Option_Value_Collection */
$values = Mage::getModel('catalog/product_option_value')
->getCollection()
->addTitleToResult($storeId)
->addPriceToResult($storeId)
->addSwatchToResult($storeId) //USED Join in this function
->setOrder('sort_order', self::SORT_ORDER_ASC)
->setOrder('title', self::SORT_ORDER_ASC);
foreach ($values as $value) {
$optionId = $value->getOptionId();
if($this->getItemById($optionId)) {
$this->getItemById($optionId)->addValue($value);
$value->setOption($this->getItemById($optionId));
}
}
}
return $this;
}
的資源集合可能是節省時間的人。
我沒有看到一個乾淨的方式來做到這一點。
這是一個骯髒的方式: 重寫Mage_Catalog_Model_Resource_Product_Option
並在下面添加此功能。 修改它與您加入。然而,加入你的表然後將每產品選項完成。您需要檢查一些標誌,並且只有在設置此標誌時才添加您的連接。
protected function _getLoadSelect($field, $value, $object)
{
$select = parent::_getLoadSelect($field, $value, $object);
if("do your check here"){
$select->join('your table')
}
return $select;
}
這個類沒有這樣的功能。如果我是對的,我必須加入價值而不是選擇。 –
是的,因爲'Mage_Catalog_Model_Resource_Product_Option'正在擴展'Mage_Core_Model_Resource_Db_Abstract'那裏你會發現這個功能,我會更新我的答案 –