2011-09-29 66 views
0

有一個函數get_user_group_ids($ user_id),它返回用戶所屬的所有組。 這會ping批處理表並獲取所有batch_ids。然後ping分組表並獲取與batch_id相對應的group_idcodeigniter模型vs庫哪一個使用

這用於事件,作業和其他庫,例如獲取屬於我的批處理的所有作業。在這裏我需要調用這個函數來獲取我的組ID。

,因爲這是一種常見的功能,我有疑問,是否創建公共庫或如果此功能獲取的ID的從數據庫或其他外部數據源進行建模

+0

爲什麼不把它放在一個核心模型?像MY_Model什麼的。 – rgin

+0

好吧,我可以那樣做。在公共圖書館寫入是否好主意> – aparna

+0

我不完全明白你的意思。 – rgin

回答

0

我一直在類似的情況下,我需要在框架(在我的情況下爲CakePHP)和批處理作業的shell腳本之間共享模型(方法的抽象集合)。爲此,我發現最簡單的方法就是創建一個像任何其他模型一樣的CakePHP模型,除非它擴展了基類(父類)框架模型類(在您的案例中爲CI_Model)。這樣做的好處是,我仍然可以使用與任何其他框架模型相同的約定來從CakePHP「加載」(啓動)類,但能夠在批處理的shell腳本中使用相同的模型(實際文件),而無需加載額外的東西。

我敢肯定,同樣是在CI可能(雖然我不是一個沉重的CI用戶):

# the model definition /application/models/CustomModel.php 
class CustomModel { 
    public function __construct() {} # ... 
    public function get_user_group_ids($id) {} # ... 
} 


# from inside the a controller method: 
$this->load->model('CustomModel'); 
$this->CustomModel->get_user_group_ids($id); # ... 


# from inside the shell scripts: 
require_once(YOUR_CI_PATH . '/application/models/CustomModel.php'); 
$obj = new CustomModel(); 
$obj->get_user_group_ids($id); # ... 

希望這有助於 乾杯