ci链式新体验
接手一个其他团队用 laravel 开发的系统,觉得里面有种方式特别喜欢。链式、模型基于数据库。此举让数据库的和模型的操作异常的方便。于是乎想在咱CI上也实现下,当然学艺不精有不正确的地方欢迎指正。如果官方就有这种方式请默默的留言....上代码:
class MY_Model extends CI_Model{
public $_self = array();
public function __set($name, $val){
$this->_self[$name] = $val;
}
public function __get($name){
if(isset($this->$name)) return $this->$name;
$ci =& get_instance();
if(isset($ci->$name)){
return $ci->$name;
}
if(isset($this->_self[$name])) return $this->_self[$name];
$this->load->model($name);
return $ci->$name;
}
}
在需要使用的模型中继承 MY_Model, 然后把对应的数据库列加载到模型属性中.
拿个场景来说吧:
用户模块(很多项目需要吧)
class Users extends MY_Model{
function __construct(){
parent::__construct();
foreach($this->info() as $key => $val) $this->$key = $val;
}
}
上面的 $this->info() 方法是从数据库中获取当前登录用户并返回的数据集合.
接着在实例化这个用户类的时候,只需要这样 $this->user->name 就可以取到列为 name 的值。
并且修改也很方便啊,$this->user->name = '特朗普' ,最后调用提交方法(提交的方法没写)提交到数据库中即可实现更新
没写提交方法只是不知道把这个方法放哪里比较好
感谢分享你的代码!
页:
[1]