Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai étendu la classe Zend_Db_Table_Abstract comme il est conseillé de faire pour travailler avec la BDD. Jusqu'a maintenant j'utilisais la méthode insert() pour pouvoir ajouter des lignes dans ma table, cependant, je voudrais récupérer le dernier identifiant de ma table et du coup, j'ai lié ma classe Post_Table qui étend la classe Zend_Db_Table_Abstract avec la classe Post_Row qui étend Zend_Db_Table_Row pour pouvoir utiliser le méthode save().
Donc j'ai écris ce code comme le conseille Sekaijin :
Code conseillé :
// users est une classe étendant Zend_Db_Table_Abstract $users = new users(); $user = $users->createRow(array('usr_name' => 'Jean')); $user->save(); //$user est l'enregistrement ajouté à la base mais il est au passage //complété de toutes les valeur par défaut qui n'ont pas été renseigné lors de l'enregistrement. $lastUserId = $user->usr_id;
Mon code adapté :
index.php (bootstrap) :
//CHARGEMENT DE MA CLASSE Zend_Loader::loadClass('Post_Table');
Post_Table.php :
class Post_Table extends Zend_Db_Table_Abstract { /* * @nom table sql correspondante */ protected $_name = "zfsp_posts"; /* * @nom table sql correspondante */ protected $_rowClass = 'Post_Row'; /* * @Clé primaire de ma table ZFSP_POSTS */ protected $_primary = 'id_post'; /* * @var string */ etc...
Post_Row.php :
Class Post_Row extends Zend_Db_Table_Row { }
Mon controller :
$this->_post = new Post_Table(); $this->_post->createRow($data); $this->_post->save();
Une fois que j'ai codé tout cela, que j'essaie d'ajouter mes données à la base en ayant pris le soin de formater mes données de telles façons que $data est un tableau avec ses clés correspondants aux noms des champs,
j'obtiens cette exception :
Fatal error: Call to undefined method Post_Table::save() in Mon controller au ligne correspondante à save()..
Si quelqu'un a une idée...je galère depuis ce matin, je dois surement oublier quelques choses mais je n'arrive plus à voir ce que ça peut être...
Merci
Bon après midi
Dernière modification par allfab (07-02-2008 16:21:05)
Hors ligne
$this->_post = new Post_Table(); $myRow = $this->_post->createRow($data); $myRow->save();
Dernière modification par sekaijin (07-02-2008 15:20:43)
Hors ligne
Merci, je suis vraiment trop c** des moments....
ça marche désormais beaucoup mieux !!
Hors ligne
non on est tous pareil lorsqu'on a le truc devant le nez depuis trop longtemps on ne vois pas le pb
A+JYT
Hors ligne
Pages: 1