【发布时间】:2014-04-09 06:19:48
【问题描述】:
使用https://github.com/jamierumbelow/codeigniter-base-model,如何动态更改模型中使用的表名?
我有一些非常相似的模型,一组供 A 组用户使用,另一组供 B 组用户使用。
为了节省一些编码并使事情更整洁,我想合并模型,因此需要传递组,并根据传递的组更改表格。
我知道我可以在模型类的开头设置表名,但我想知道如何在调用模型方法时动态设置它?
这是我的一些测试代码:
function setGroup($group)
{
switch($group) {
case 'admin':
case 'mod':
$this->table = 'library_categories';
break;
case 'members':
$this->table = 'user_categories';
break;
}
return $this;
}
这不起作用。
如果我以 A 组的表格命名模型,例如group_a_model.php,那么即使为 Group B ($this->table = 'group_b') 设置表也不会真正更改查询的表。
我尝试为模型指定一个通用名称 (group_model),但随后我必须在模型中设置“public $table = 'group_a')”。同样,提供的代码实际上不会更改使用的表,它始终使用表 group_a...
有没有办法改变使用的表,使用这个 MY_Model 助手?
【问题讨论】:
-
将 viriable 添加到 $this->table 示例 $table = $this->table = "sample"
标签: php mysql codeigniter model codeigniter-2