我有擴展ORM的Model_Group。Kohana - 在控制器之間傳遞ORM對象的最佳方式?
我有Controller_Group是得到一個新的ORM:
public function before()
{
global $orm_group;
$orm_group = ORM::factory('Group');
}
...它有一個用它來獲取數據的不同子集,如各種方法......
public function action_get_by_type()
{
global $orm_group;
$type = $this->request->param('type');
$result = $orm_group->where('type', '=', $type)->find_all();
}
然後我有另一個控制器(在一個單獨的模塊中),我想用它來操作對象並調用相關的視圖。我們稱之爲Controller_Pages。
$orm_object = // Get the $result from Controller_Group somehow!
$this->template->content = View::factory('page1')
->set('orm_object', $orm_object)
什麼是將ORM對象從Controller_Group傳遞到Controller_Pages的最佳方法是什麼?這是一個好主意嗎?如果沒有,爲什麼不,以及有什麼更好的方法呢?
將它們分離到不同的控制器中的原因是因爲我希望能夠從其他模塊中重新使用Controller_Group中的方法。每個模塊可能都想以不同的方式處理對象。
我覺得功能'action_get_by_type'應該是你的ORM模型中的一個函數。比你可以在每個你想要的控制器中調用該函數。 – Manuras
這是一個有趣的事情。所以你的意思是我會通過執行'$ result = $ orm_group-> get_by_type($ type);''來調用它。 – SigmaSteve