2012-05-02 117 views
1

如何更新Kohana 3.2的ORM中的多個記錄?Kohana 3.2 ORM多個記錄更新

例如這樣的:

$menu = ORM::factory('menu'); 
$menu->where('active','=',1); 
$menu->active=2; 
$menu->save(); 

不起作用,它插入一個新的記錄。

感謝

+0

有沒有你想做到這一點使用ORM,而不是查詢生成器的原因嗎? – Tadeck

+0

因爲應用程序使用「Model_Menu extends ORM」類來執行。 – Vincent

+0

這不是一個參數。 Kohana的ORM基於查詢構建器,所以它只支持查詢構建器功能的一個子集。使用原始查詢生成器,您可以使用單個SQL查詢設置所需的內容,而不是對每個記錄使用單獨的查詢。使用ORM而不是查詢生成器的唯一合理的參數是:1)可讀性關注(在ORM層上執行任務,而不是在較低的查詢生成器層上執行任務); 2)模型中包含的定製業務邏輯(例如'save() '方法)。這裏是哪種情況? – Tadeck

回答

2

如果你不想硬編碼表名可能像下面

DB::update(ORM::factory('menu')->table_name()) 
->set(array('active' => '2')) 
->where('active', '=', '1') 
->execute();