2011-09-29 56 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); # ... 

希望这有助于 干杯