2014-12-03 22 views
1

我需要在'core_config_data'中添加一個包含timestamp/updated_at的列。 SQL部分不會是一個問題,但我試圖擴展一個API,以便我可以得到該時間戳。這就是我陷入困境的地方。我不知道如何從該專欄中獲取信息。任何人都可以幫忙嗎?Magento - 如何在core_config_data上添加updated_at

編輯: 要解釋好一點......

我core_config_data表現在顯示是這樣的:

| config_id |範圍| scope_id |路徑|值| updated_at |

所以,我需要得到「updated_at」。我知道如何獲得價值:Mage :: getStoreConfig('design/head/title')

但是,如何獲得「updated_at」?謝謝你在前進

回答

0

好吧,我發現自己的答案,並在情況下,有人想用它做的東西,我會張貼...

$configDataCollection = Mage::getModel('core/config_data')->getCollection(); 

$conf = array(); 
$path = 'section/group/field'; 
foreach ($configDataCollection as $data) { 
    if ($data->getPath() == $path) { 
     $conf = array(
      'config_id' => $data->getConfigId(), 
      'path' => $data->getPath(), 
      'value' => $data->getValue(), 
      'updated_at' => $data->getUpdatedAt() 
     ); 
    } 
} 
+0

請在這個解決方案中查看我的回答 – miszyman 2014-12-03 15:34:14

+0

,您可以遍歷整個表,這對於大型表來說可能會非常緩慢且耗費資源。此外,您不考慮當前範圍。 – miszyman 2014-12-03 15:40:46

0

當您保存在你的模塊的管理面板數據,那麼你可以得到的數據,如

$configValue = Mage::getStoreConfig('sectionName/groupName/fieldName'); 

您需要先救「的updated_at」字段從你的模塊後,你可以得到值。

+0

謝謝你的回答,但並沒有真正幫助我。我需要獲取updated_at,而不是值。你還有其他建議嗎? – 2014-12-03 12:03:31

0

你可以嘗試這樣的事:

$requestedPath = 'general/locale/code'; 
$configValue = Mage::getModel('core/config_data') 
    ->getCollection() 
    ->addFieldToFilter('path', $requestedPath) 
    ->addFieldToFilter('scope', 'stores') 
    ->addFieldToFilter('scope_id', Mage::app() 
         ->getStore()->getStoreId()) 
         ->getFirstItem(); 

但是你必須記住,這樣的解決方案不會使用配置的回退。所以它並不完美,甚至遠非完美。

+0

謝謝。但我不知道爲什麼,當我添加 - > addAttributeToFilter時,它會中斷。你有什麼主意嗎? – 2014-12-04 09:53:57

+0

我的壞.. addAttributeToFilter是爲EAV模型 - 和core_config_data不是一個EAV模型 - 我更新了我的答案:)現在它應該沒問題:) – miszyman 2014-12-04 12:03:16

+0

謝謝。有用。 :) – 2014-12-04 12:41:36