Je suis très nouveau dans le codeigniter mais je comprends bien le POO et le MVC car je fais beaucoup de développement de Rails. Une chose que je n'ai pas encore compris est comment écrire une méthode de niveau de classe dans codeigniter et y accéder dans un contrôleur. Par exemple, jeMéthodes de classe et méthodes d'instance dans codeigniter, comment les utiliser?
<?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;
}
}
?>
Je pense que ce que je l'ai fait ici est mis en place une méthode de niveau de classe pour mon modèle que je devrais être en mesure d'appeler avec User_model::get_total_users_count()
Maintenant, dans mon contrôleur qui un programmeur précédent appelé « Bienvenue » I quelque chose comme:
<?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);
}
}
l'appel de méthode ci-dessus pour get_total_users_count
ne fonctionne pas parce qu'il dit parce que je suis en utilisant la méthode db sur une fonction de niveau de classe get_total_users_count
. En d'autres termes $ ceci n'a pas de méthode db quand je référence une classe. Maintenant, ma question est un peu plus théorique. J'ai toujours pensé que les méthodes d'instance ne devraient être utilisées que lorsqu'une méthode agit sur une instance spécifique d'une classe. Ça a du sens, non? Cependant, get_total_users_count
agit sur tous les "utilisateurs" et les compte. Il semble juste que cela devrait être une méthode au niveau de la classe. Êtes-vous d'accord? Si oui, savez-vous comment je peux accéder à la base de données à partir du cadre dans une fonction de niveau classe?
Merci!
Pourquoi le downvote? Cela répond à la question "comment je peux accéder à la base de données à partir du cadre dans une fonction de niveau classe" – putolaruan