2011-02-27 51 views
1

我想在Kohana 3 ORM中使用查詢生成器方法,因此可以這麼做嗎?我想在Kohana ORM模型中使用我的一些函數,例如,如果我在函數中做了一些事情,並且它屬於某個已經是基於ORM模型的模型,那麼我想在其中編寫該函數,是否有可能我可以在這些方法或類中使用查詢生成器或ORM? 像想要在Kohana3中使用查詢生成器ORM

class Abc_Model extends ORM{ 
    function setAbc($a){ 
      DB::insert($table,$a); 
    } 

    function getSomething(){ 
     $x=$this->x->find_all(); 
     return $x; 
    } 


} 

所以我可以做的ORM,以及如何這樣的事情,並不會是一個好方法?

回答

2

感謝__call(),您可以在任何地方的ORM對象上使用查詢構建器方法。

所以:

// inside the model 
public function find_all_specific($val) 
{ 
    return $this->where('specific','=',$val)->find_all(); 
} 

有不少很好的文檔使用ORM KO3,您可以用userguide開始:

http://kohanaframework.org/3.1/guide/orm/using(如果你使用3.0.x的開關3.0)

+0

所以我可以使用我在控制器中得到這樣的方法: 'code' $ info = $ model-> find_all_specific($ val); '代碼' – Hafiz 2011-02-28 14:42:38

+0

,你也可以說$ info = $ model-> where ...你想要的任何地方 – Kemo 2011-02-28 17:48:59

+2

請注意,如果你想設置表名(用於from()'方法)或DB對象(for 'execute()'方法),你應該使用'$ this - > _ table_name'和'$ this - > _ db' – biakaveron 2011-03-01 07:29:21

相關問題