2010-12-22 2 views
1

Ich habe eine Klasse, die Model_UserZend_Db_Table_Row erstreckt, aber wenn ich versuche, eine Zeile wie folgt einfügen:Kann nicht createRow von Zend_Db_Table_Row verwenden

$user = new Model_User(); 

    $data = array(
     'user_login' => $form->getValue('username'), 
     'user_password' => $this->saltPassword($form->getValue('password')), 
     'user_email' => $form->getValue('email') 
    ); 

    $newUser = $user->createRow($data); 

ich einen Fehler: An error occurred, Application error (Eigentlich Wer weiß, wie um klarere Fehlermeldungen zu haben? Diese sind sehr vage)

Meine Modellklasse ist wie in der Lösung von this post beschrieben. (So ​​habe ich auch eine Model_User_Table Klasse, die sich erweitert Zend_Db_Table_Abstract)

Irgendwelche Ideen?

+1

Um klarere Fehlermeldungen zu erhalten, setzen Sie Zend in den Entwicklungsmodus. Das Standardproduktionsverhalten besteht darin, Fehlermeldungen zum Schweigen zu bringen, um es einem Angreifer zu erschweren, Informationen zu den Fehlern zu verwenden, die von Ihrer App generiert werden, um Sie anzugreifen. –

+0

Wie wechsel ich in den Entwicklungsmodus? Ich habe mehrere 'Kategorien' in meiner application.ini Vielen Dank für Ihre Hilfe! – networkprofile

Antwort

1

Methode createRow ist definiert für Zend_Db_Table_Abstract, nicht für Zend_Db_Table_Row_Abstract. Ändern Sie einfach Ihren Code in

$user = new Model_User_Table(); 
$newUser = $user->createRow($data); 
+0

Aber mein Model_User sollte eine einzelne Zeile aus meiner Benutzertabelle repräsentieren und nicht meine gesamte Tabelle (ist das was der Link, den ich gepostet habe, sowieso gesagt hat) Hat Zend_Db_Table_Row_Abstract eine ähnliche Methode wie createRow? Vielen Dank! – networkprofile

+0

Zend_Db_Table_Abstract :: createRow() gibt eine Instanz von Zend_Db_Table_Row_Abstract zurück, so dass dein $ newUser Objekt tatsächlich eine einzelne Zeile darstellt. – Vika

+0

Ah richtig sehe ich! Noch eine Frage, mit der Sie mir vielleicht weiterhelfen könnten: Wie kann ich $ newUser in diesem Fall zu einem Model_User-Objekt machen, damit ich meine Benutzermethoden für diese Objekte aufrufen kann? Wie Sie sagten, sind sie vom gleichen Typ, aber ich kann nicht denken, wie man es macht. – networkprofile