我使用的是PHP和jamierumbelow/codeigniter基本模型。我有以下表格
Table name: class_2014
Table name: class_2015
Table name: class_2016
所有class_*表在结构基础、字段名称和其他属性上都是相同的。唯一的区别是名称和数据。
我在PHP中有一个变量,它包含YEAR值,例如$strYear='2015'。
如何根据strYear持有的任何值变量将$_table参数动态传递或构建到"Model_",例如$strYear='2015'*
我的模型文件如下,
<?php
class Model_class extends MY_Model{
protected $_table = 'class_2015'; //HOW TO PASS THIS DYNAMICALLY
protected $primary_key = 'classId';
protected $return_type = 'array';
}
我的get函数如下,
// GET CLASS
function class_get(){
$classId = $this->uri->segment(3);
$this->load->model('Model_class');
$strYear = '2015'
if(!$classId) {
$class = $this->Model_class->get_all();
}else{
$class = $this->Model_class->get_by(array('classId'=>$classId));
}
if(isset($class['classId'])){
$this->response($class);
}else{
$this->response($class);
}
}
您可以将Construct添加到您的模型中,如下所示:
public function __construct($name)
{
parent::__construct();
$this->_table = $name;
}
当你在控制器中调用你的模型时,将名称作为参数,如下所示:
$MyModel = new MyModel($name)