用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4991|回复: 5
收起左侧

[模型] 写了个model的扩展类,请大家看看有没有必要

[复制链接]
发表于 2010-10-11 15:10:55 | 显示全部楼层 |阅读模式
刚接触ci,看了一下model,发现常用的方法都没有,随手写了个扩展,请指点一下,看看有没有必要。

  1. <?php
  2. /**
  3. * S__model
  4. * model基类扩展
  5. * @author slime
  6. */
  7. class S_model extends Model {
  8.     var $_table;
  9.     var $_primary = 'id';
  10.     function S_model(){
  11.         parent::Model();
  12.     }

  13.     /**
  14.      * 根据id获取一条记录
  15.      * @param int $id
  16.      * @return obj
  17.      */
  18.     function get($id) {
  19.         $this->db->where($this->_primary, $id);
  20.         $query = $this->db->get($this->_table);
  21.         if ($query->num_rows()) {
  22.             return $query->row();
  23.         }
  24.         return false;
  25.     }

  26.     /**
  27.      *获取所有记录
  28.      * @return obj
  29.      */
  30.     function getAll() {
  31.         $query = $this->db->get($this->_table);
  32.         if ($query->num_rows()) {
  33.             return $query->result();
  34.         }
  35.         return array();
  36.     }

  37.     /**
  38.      *根据条件获取记录
  39.      * @param string $where
  40.      * @return obj
  41.      */
  42.     function getRows($where){
  43.         $this->db->where($where);
  44.         $query = $this->db->get($this->_table);
  45.         if ($query->num_rows()) {
  46.             return $query->row();
  47.         }
  48.         return false;
  49.     }
  50. }
复制代码
使用方法:原来每个model类都 extends Model,现在改为 extends S_model
发表于 2010-10-11 15:59:39 | 显示全部楼层
完全没必要啊
数据库有AR类
 楼主| 发表于 2010-10-11 16:33:40 | 显示全部楼层
完全没必要啊
数据库有AR类
ywqbestever 发表于 2010-10-11 15:59


谢谢,看来CI确实和别的框架有点不一样,我看了一下ar类,看上去,CI不建议每张表做一个model类了?
怎么在ar类中指定一个表呢?
比如

  1. $this->db->delete('tablename')
复制代码
,怎么事先指定tablename,从而只输入

  1. $this->db->delete()
复制代码
完成删除操作呢?
发表于 2010-10-11 16:34:47 | 显示全部楼层
没有这个,如有需求自己扩展
 楼主| 发表于 2010-10-11 17:05:20 | 显示全部楼层
收到,扩展了,谢谢。
发表于 2010-10-12 14:28:09 | 显示全部楼层
还是SQL语句比较灵活,很多时候写SQL就知道怎么写。为了这个还去查CI手册太麻烦了太麻烦。

本版积分规则