2012-01-09 23 views
1

對於我正在處理的項目,我必須使用LastEdited字段並結合其他一些數據來推斷有關所討論的DataObject的一些信息。這在大多數情況下都很好,因爲在正常情況下,LastEdited字段幾乎總是一個理智的值。覆寫Silverstripe LastEdited

但是,當試圖單元測試我的代碼時,我遇到了這樣的問題,即使我的燈具中設置了LastEdited字段,當數據被加載到臨時數據庫時,它會將LastEdited字段設置爲當前時間。

我目前的假設(某些初始探測到藍寶石後有所支持)是調用DataObject :: write()自動將LastEdited設置爲當前時間(預期行爲)。

我的問題是是否有辦法暫時禁用此功能,或者我將不得不打補丁藍寶石做到這一點?

UPDATE我決定能夠設置從夾具最後編輯的值是有用的,並做了補丁。好消息,這將是在silverstripe

回答

0

我會回答我自己的問題,因爲它使生活更輕鬆。

這是一個已知的bug,將被修復Silverstripe 3.0。

1

你可以嘗試在單元測試

$this->logInAs('admin'); 
$page->LastEdited = '2011-11-11 17:00:00'; 
$page->doPublish(); 
$this->logOut(); 

設置LastEdited值的下一個版本我敢肯定的作品。這使用夾具btw管理成員。

+0

由於我正在測試數據庫代碼(包括原始SQL查詢),所以不起作用。 – Aatch 2012-01-11 13:04:10