Ben CodeIgniter için çok yeni ama ben Raylar gelişme bir sürü gibi OOP ve MVC anlıyorum. Ben henüz çözemedim bir şey CodeIgniter'daki bir sınıf düzeyi yöntem yazmak ve denetleyicisi erişmek için nasıl. Örneğin, ben var
<?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;
}
}
?>
Ben adında bir önceki programcı gibi bir şey var "Hoşgeldiniz" hangi benim denetleyicisi Şimdi User_model::get_total_users_count()
ile aramak mümkün olmalıdır benim modeli için bir sınıf düzeyi yöntem kurulan burada yaptıklarını düşünüyorum:
<?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);
}
}
I get_total_users_count
bir sınıf düzeyinde fonksiyonu üzerindeki db yöntemi kullanıyorum çünkü diyor çünkü yukarıdaki yöntem çağrısı get_total_users_count
çalışmaz. Diğer bir deyişle bir sınıfa başvururken bu db yöntemi vardır $.
Yani şimdi benim sorum biraz daha teorik. Ben her zaman bir yöntem, bir sınıfın belirli bir örneği üzerinde hareket olduğunda örnek yöntemleri yalnızca kullanılması gerektiğini düşündüm. Doğru, mantıklı? Ancak, get_total_users_count
bütün "kullanıcılar" hareket eden ve onları sayıyor. Bu bir sınıf düzeyinde yöntemi olması gerektiği gibi sadece görünüyor. Katılıyor musunuz? Do, ben bir sınıf düzeyi işlevin içinde çerçeve içinde gelen veritabanına erişebilir biliyor yoksa?
Teşekkürler!