2012-04-04 3 views
0

Ich bin neu bei MVC und Codeigniter und versuche, eine Klasse zum Laufen zu bringen.Klasse nicht gefunden

Ich bin mit CodeIgniter 2.1.0 und 2.2.1 Lehre

Wenn mein Code die submit() Funktion aufruft, erhalte ich Class 'Myclass_model' not found, und Verweise auf die Linie, die folgenden beinhaltet: $u = new Myclass_model();

(siehe bearbeiten Hinweis am Ende, jetzt Class 'Doctrine_Record' not found im Modell bekommen, wo es erweitert wird)

in meinem Controller ist der folgende Code:

public function submit() { 

     if ($this->_submit_validate() === FALSE) { 
      $this->index(); 
      return;  
     } 

     $u = new Myclass_model(); 
     $u->username = $this->input->post('username'); 
     $u->password = $this->input->post('password'); 
     $u->email = $this->input->post('email'); 
     $u->save(); 

     $this->load->view('submit_success'); 
    } 

Und in meinem/application/models/Ordner habe ich myclass.php:

class Myclass extends Doctrine_Record { 

public function setTableDefinition() { 
    $this->hasColumn('username', 'string', 255, array('unique' => 'true')); 
    $this->hasColumn('password', 'string', 255); 
    $this->hasColumn('email', 'string', 255, array('unique' => 'true')); 
} 

public function setUp() { 
    $this->setTableName('testtable1'); 
    $this->actAs('Timestampable'); 
      //$this->hasMutator('password', '_encrypt_password'); 
} 

    protected function _encrypt_password($value) { 
     $salt = '#*[email protected]*%'; 
     $this->_set('password', md5($salt . $value)); 
     //Note: For mutators to work, auto_accessor_override option needs to be enabled. We have already done it, in our plugin file doctrine_pi.php. 

    } 
} 

Ich vermute, dass mein Problem mit der Erweiterung Doctrine_Record ist. Ich habe document2 installiert, und in/application/libraries/habe ich Doctrine.php und den Doctrine-Ordner. Aber ich bin nicht sicher, wo zu überprüfen, oder sogar wie überprüfen und stellen Sie sicher, dass Doctrine_Record verfügbar ist, konfiguriert, etc.

Kann mir jemand helfen, dies zu beheben und herauszufinden, wo das Problem liegt? Etwas Einfaches mit meiner Klasse? Ein Problem mit meiner Doctrine install/config?

Edit: Ich folgte den Vorschlag, die Klasse der Aufruf wie folgt:

$this->load->model('Myclass_model','u'); 

Und jetzt bin Class 'Doctrine_Record' not found bekommen, wo das Modell Doctrine_Record

Antwort

0

erstreckt Ich vermute, Sie nicht schließen Myclass.php Datei oder einen falschen Pfad haben. Wenn Sie Probleme mit der Doctrine-Erweiterung hatten, würde Ihr Fehler das Elternelement erwähnen. Sogar noch, stellen Sie sicher, die übergeordnete Datei in Ihrer neuen Klasse mit einem include_once('path/to/doctrine_record');

enthalten können Sie fügen Sie es die autoload.php Datei oder manuell wie folgt:

public function submit() { 

     if ($this->_submit_validate() === FALSE) { 
      $this->index(); 
      return;  
     } 

     include_once('/path/to/Myclass.php'); 
     $u = new Myclass(); 
     $u->username = $this->input->post('username'); 
     $u->password = $this->input->post('password'); 
     $u->email = $this->input->post('email'); 
     $u->save(); 

     $this->load->view('submit_success'); 
    } 

Oder noch besser, können Sie es wie eine Last Modell. Benennen Sie die Datei zu myclass_model.php und den Klassennamen zu Myclass_model :)

public function submit() { 

     if ($this->_submit_validate() === FALSE) { 
      $this->index(); 
      return;  
     } 

     $this->load->model('Myclass_model','u'); 
     $this->u->username = $this->input->post('username'); 
     $this->u->password = $this->input->post('password'); 
     $this->u->email = $this->input->post('email'); 
     $this->u->save(); 

     $this->load->view('submit_success'); 
    } 
+0

ich es fest wie ein Modell zu laden, und jetzt bekommen: Klasse ‚Doctrine_Record‘ nicht gefunden (aus meinem Modell, bei dem es sich Doctrine_Record) – jeremy

+0

Meine gerade bearbeiten – AlienWebguy

+0

versucht, dasselbe Ergebnis, Doctrine_Record nicht gefunden. Frage aktualisiert – jeremy