2011-11-17 11 views
0

我的模型聲明中出現問題,Kohana 3.0.4中的字段爲$_created_column$_updated_column。 問題是: - 當我從我的控制器創建和更新對象時,數據庫中對應於$_created_column$_updated_column聲明的字段根據當前的創建/修改日期進行修改,就像它應該那樣。

  • 當我創建並從模型更新對象(使用DB::insertDB::update)(這是最好的做法 - >從模型處理數據操作)對應的聲明字段不更新。

爲DB的代碼::更新和DB ::插入:

public function add_productimage($zoom, $particular, $thumbnail, $presentation, $product, $order){ 
    $insert_id = DB::insert('product_image', array('zoom','particular','thumbnail','presentation','product','order')) 
     ->values(array($zoom, $particular, $thumbnail,$presentation, $product, $order)) 
     ->execute(); 
    return $insert_id; 
} 

任何想法,爲什麼?所有的

+1

發佈我編輯過的DB :: insert和DB :: update – matino

+0

的代碼。謝謝 – dana

回答

2

對於插入和更新,您沒有使用ORM,因此這些特定設置不適用。您使用數據庫查詢生成器而不是ORM。 使用ORM進行插入/更新,然後您將在這種情況下采用最佳做法。

順便說一句:您的Kohana(3.0.4)的版本應該很容易更新到3.0.12(最先進最新的3.0.x線),而這將解決在3.0.4中存在的多個漏洞。

+0

所以你說使用db :: in模型不是最佳實踐嗎?我應該改爲使用orm? – dana

+0

如果你正在使用ORM,那麼爲什麼不使用它來保存?另一種選擇是不使用ORM,而只使用純DB Builder,但是你放棄了ORM增加的一些好東西(比如自動驗證)。在你的情況下,我會一路跟隨ORM。 – matino

+0

好吧,夠公平的。謝謝。升級到3.0.12不涉及重寫代碼? – dana

1

首先,我看不出有任何理由不使用ORM你的方法裏面:

public function add_productimage($post) 
{ 
    $this->values($post); 
    $this->save(); 
} 

這是要走的路參訪,因爲這樣一來你必須保存在你的模型驗證。

要回答你的問題 - 你是否嘗試過與docs所說的完全相同的方式?
哦,並確保你指向正確的表 - 在你的例子中它是product_image而Kohana風格是product_images。也許你忘了在最後加上's'。