我對codeigniter很陌生,但是理解OOP和MVC,因爲我做了很多Rails開發。我還沒有想到的一件事是如何在codeigniter中編寫一個類級別的方法並在控制器中進行訪問。例如,我有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
不起作用,因爲它說,因爲我用在get_total_users_count
類級函數的分貝方法。換句話說,當我引用一個類時,$沒有db方法。
所以現在我的問題有點更理論了。我一直認爲實例方法應該只在方法作用於某個類的特定實例時使用。有道理,對嗎?但是,get_total_users_count
正在處理所有「用戶」並對它們進行計數。這似乎應該是一個類級別的方法。你同意嗎?如果這樣做,你知道如何通過在類級別函數中使用框架來訪問數據庫嗎?
謝謝!
爲什麼downvote?這回答了「如何通過使用類級函數內的框架來訪問數據庫」這一問題 – putolaruan 2009-11-19 00:50:44