最近從小海那邊得知CodeIgniter有ORM的library,馬上就去下載試了一下。從文件來看DataMapper比起IgnitedRecord來得詳細多了,不過我覺得IR的名稱比較帥XD,但是我還是選用了DM了。

DM目前最新的版本是1.4.5,看著文件一步一步試著如何使用,可能之前碰過CakePHP,所以用起來相當的容易上手,一下子就差不多看完了,不過在Automated Timestamps那篇章節所說的效果我卡彈了!

Automated Timestamps的設定,可以讓每次資料有做異動時,自動更新的異動時間欄位,換句話說就是記錄最後修改時間,但是我試了好幾次都沒有成功,後來我自己試著去debug,發現原來在libraries/datamapper.php的428行遺漏了一個動作。

//原始碼片斷(source)
if ($field == $this->updated_field)
{
    // Update updated datetime
    $this->{$field} = $timestamp;
} 
//修正後的程式碼(fixed)
if ($field == $this->updated_field)
{
    // Update updated datetime
    $this->{$field} = $timestamp;
    // Register changed existing
    array_push($this->changed_existing,$field);
}

低溫烘培 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • tsai recca
  • 選用DM真的是明智的抉擇啊!