Ich arbeite an einem Codeigniter-Projekt und habe den Zugriff auf den Controller vom Modell aus gesehen. Ich frage mich, ob $ this-> Controller ist der gleiche oder anders als die Verwendung von $ CI = & get_instance(). Ich nehme an, nein, aber ich bin vertrauter mit dem Standard, der Daten von einer Funktion zurückgibt, als dieser Weg. Ich habe nicht Codeigniter Beispiele tun dies gesehen, so dass ich glaube nicht, das ist eine vorgeschlagene Art und Weise der Steuerung des Zugriffs auf, sondern eher ein Hack:Codeigniter - Zugriffssteuerungsdaten vom Modell
class my_model extends CI_Model
{
public function __construct()
{
$this->errors = array();
parent::__construct();
$this->controller = get_instance();
}
public function somefunc()
{
// Accessing controller
$this->controller->session->set_userdata('foo', 'bar');
$this->controller->data = "fubar";
}
}
Ich denke, das ist Anti-Muster. Der Controller sollte derjenige sein, der die Logik steuert. Sie könnten dies tun, indem Sie die Rückgabe von der Modellfunktion erhalten. – Phiter
Ja einverstanden mit @phiter. Aber immer noch wollen Sie zugreifen dann versuchen Sie $ this-> controller = & get_instance(); Hier finden Sie detaillierte Antwort: http://StackOverflow.com/a/4740548/1578380 – Chintan7027