ci load->model() 确实不能传构造参数。如果传参非常有必要的话,可以自己创建ci的核心类。
方法大概几个步骤:
1,将system/core/Loader.php 复制到 application/core/ 目录下,并改名为MY_Loader.php (这个前缀取决于 $config['subclass_prefix'] 配置,默认:MY_)
2,打开复制的文件,将类名改为 MY_Loader 并继续 CI_Loader,将除了model()方法以外的其他方法都删除。但别忘了调用父类的构造方法。
class MY_Loader extends CI_Loader {
public function __construct()
{
parent::__construct();
}
public function model($model, $name = '', $db_conn = FALSE)
{
。。。。。
}
}
3,然后根据自己的需求修改model()方法就可以了,其中$CI->$name = new $model();就是实例化要加载的model类,将参数写进去就可以了。