1、用户进入网站的时候,在公共Controller和公共Model的构造方法中重新设置C('DB_NAME','db_user'.$uid);但是发现这样没有效果,因为D()方法会从$_model[]中获取已经创建过的模型实例,而如果在每个D()方法后面加D()->db($uid,$conf),则代码改动量非常大。
2、在每个用户Model里面新增protected $dbName='',这个行不通,因为每个用户进来,数据库名称都不一样,无法写到模型字段中。
3、用户Model新增构造函数,在构造函数里面设置$this->dbName='db_user'.$uid,这个方法和方法1是一样的,受$_model[]缓存限制。
4、不用D()方法,直接new()模型,代码改动量也比较大。
5、改造D()方法,使之自动从session加载db_config,并在返回模型实例前执行->db()方法,这个好像也无效。
最佳答案