2017-05-19 1 views
1

Kann ich tatsächlich Datenbankabfragen machen, ohne eine neue Instanz des Modells zu erstellen?Datenbankabfragen ohne Modellobjekte auf CodeIgniter

Zum Beispiel in meinem Controller habe ich (Controller)

Name_Model::get_all_from_another_table(); 

und in meinem name_model.php (MODEL)

public static function get_all_from_another_table() { 
    $this->db->query('select * from another_table'); 
    return $x; 
} 

Dieser Fall für Tabellen mit vordefinierten Werten geschieht, bevor geladen werden Erstellen neuer Instanzen des Modells.

Der obige Code gibt:

Fatal error: Using $this when not in object context 
+0

Warum versuchen Sie nicht '$ this-> last-> Modell ('name_model')'? Mach es auf dem Controller. Und wir sollten '$ this-> name_model-> get_all_from_another_table()' aufrufen. – Ukasyah

+0

@Ukasyah 'Schwerwiegender Fehler: $ wenn nicht im Objektkontext verwenden. Derselbe Fehler tritt auf. –

Antwort

1

es fisrt Versuchen.

Controller:

$this->load->model('name_model'); 
$data = $this->name_model->get_all_from_another_table()->result(); 
print_r($data); //just for testing... 

Modell:

//Model name: name_model.php 

public static function get_all_from_another_table() { 
    $this->db->query('select * from another_table'); 
    return $x; 
} 
1

Controller:

// Model File and Class Name first Character Must be Uppercase 

$this->load->model('Name_model'); 
$data = $this->Name_model->get_all_from_another_table(); 
print_r($data); //You result is print here 

Modell:

//Model name: Name_model.php 

public static function get_all_from_another_table() { 
    $query = $this->db->query('select * from another_table'); 
    return $query->result(); 
} 
+0

Ich glaube nicht, in CI 3 können Sie Kleinbuchstaben verwenden, wenn Sie es laden. Vertrau mir, es funktioniert. – Ukasyah

+0

Ok vielleicht funktioniert es aber Irgendwann ist es Affekt also müssen wir diese gute Angewohnheit nehmen es ist gut für uns. – ImBS

Verwandte Themen