代码之家  ›  专栏  ›  技术社区  ›  Tony

codeigner中的类方法和实例方法,如何使用它们?

  •  2
  • Tony  · 技术社区  · 16 年前

    我对CodeIgniter非常陌生,但是在开发很多Rails时,我了解OOP和MVC。有一件事我还没弄清楚,那就是如何在CodeIgniter中编写类级方法,并在控制器中访问它。例如,我有

    <?php
    class User_model extends Model {
        function user_model()
        {
            parent::Model();
        }
    
        public static function get_total_users_count(){
            $results = $this->db->query("SELECT * FROM bhr_users GROUP BY userid");
            if($results){
                return $results->num_rows();
            }
            return 0;
        }
    }
    ?>
    

    我认为我在这里所做的是为我的模型建立一个类级别的方法,我应该能够调用它 User_model::get_total_users_count() 现在,在我的控制器中,前一个程序员称之为“欢迎”,我有一些类似的东西:

    <?php
    
    class Welcome extends Controller {
    
        function Welcome()
        {
            parent::Controller();   
            $this->load->model('bhr_model');
                $this->load->model('user_model');
        }
    
        function index()
        {
    
            $invite =    $this->uri->segment(3);
            if($invite == 'invitefriends') {
                $pagedata['invitefriends'] = $invite;
            } else {
                $pagedata['invitefriends'] = '';
            }
    
            $pagedata['numberofpeople'] = User_model::get_total_users_count();
            $this->load->view('default_page', $pagedata);
        }
    }
    

    上述方法调用 get_total_users_count 不起作用,因为它说,因为我正在对中的类级函数使用db方法 获取用户总数 . 换句话说,$当我引用一个类时,它没有db方法。

    所以现在我的问题更加理论化了。我一直认为实例方法只能在方法作用于类的特定实例时使用。有道理,对吧?然而, 获取用户总数 正在对所有“用户”执行操作并对其计数。似乎这应该是一个类级别的方法。你同意吗?如果是这样,您知道如何使用类级函数内的框架访问数据库吗?

    谢谢!

    5 回复  |  直到 13 年前
        1
  •  7
  •   putolaruan    16 年前

    $ci_ins =& get_instance();
    $ci_ins->db->query();
    
        2
  •  3
  •   andrewsi Laxman Battini    13 年前

    $sample = class_name::method();
    
        3
  •  2
  •   Jessedc    16 年前

        4
  •  1
  •   Galen    16 年前

    get_total_user_count

    getUsername getLastLogin

    findUserById createNewUser getTotalUserCount

        5
  •  0
  •   Teej    16 年前
     $pagedata['numberofpeople'] = $this->user_model->get_total_users_count();
    

    推荐文章