封装一下CakePHP的Model,增加链式操作
2012-12-30 12:48
211 查看
class AppModel extends Model { public function save($data=null, $validate=true, $fieldList=array()) { if (isset($this->data) && isset($this->data[$this->name])) { unset($this->data[$this->name]['modified']); } if (isset($data) && isset($data[$this->name])) { unset($data[$this->name]['modified']); } return parent::save($data, $validate, $fieldList); } protected $_params; /* * custom data query method goes here */ public function relation($params) { $this->_params['recursive'] = $params; return $this; } public function where($params) { $this->_params['conditions'] = $params; return $this; } public function order($params) { $this->_params['order'] = $params; return $this; } public function fields($params) { $this->_params['fields'] = $params; return $this; } public function page($params) { $this->_params['page'] = $params; return $this; } public function limit($params) { $this->_params['limit'] = $params; return $this; } public function offset($params) { $this->_params['offset'] = $params; return $this; } public function joins($params) { $this->_params['joins'] = $params; return $this; } public function group($params) { $this->_params['group'] = $params; return $this; } public function count() { $r = $this->find('count', $this->_params); $this->_params = array(); return $r; } public function first() { $r = $this->find('first', $this->_params); $this->_params = array(); return $r; } public function select() { $r = $this->find('all', $this->_params); $this->_params = array(); return $r; } public function lists() { $r = $this->find('list', $this->_params); $this->_params = array(); return $r; } public function threaded() { $r = $this->find('threaded', $this->_params); $this->_params = array(); return $r; } public function neighbors() { $r = $this->find('neighbors', $this->_params); $this->_params = array(); return $r; } public function drop($cascade=false) { if (!empty($this->_params['conditions'])) { $r = $this->deleteAll($this->_params['conditions'], $cascade); } else { $r = array(); } $this->_params = array(); return $r; } }
相关文章推荐
- 自定义封装简单的基于FMDB以及数据model的数据库操作
- SqlParameter--研究一下,对SqlParameter进行封装操作
- 怎样在JAVA 中封装数据库操作(增删改查)运用反射机制!已贴出删除和查询方法,求增加和修改!
- c#中 封装操作ini文件的API 修改了一下函数名别的没动
- 将Redis操作封装成Model
- Thinkphp增加操作(Controller到模型Model的逻辑)
- 介绍一下新版CakePHP的Model测试方法
- 给电影的模型(Model)和表格增加新的字段(ASP.NET MVC3系列文章七)
- 请教一下 贺老师。 第十四周C++【任务1】建立专门的数组类处理有关数组的操作
- AJAX的来龙去脉(由来)-如何被封装出来的--ajax发送异步请求(四步操作)
- Qt:QSqlDatabase的进一步封装(多线程支持+更加简单的操作)
- 使用XML封装数据库操作语句的实现(zz)
- Linux中VMware虚拟机增加磁盘空间的扩容操作
- jQuery链式操作实例分析
- iOS plist文件读,写,增加操作
- 关于wpf DataGrid 的增加删除行操作
- jquery 对json数据的操作,增加、删除记录
- 封装的一个android底部操作弹出窗
- VS2010出现CodeModel操作失败,无法访问标记数据库
- android 进行拍照操作时对 onActivityResult()的封装隔离