J'ai des classes séparées pour db_table livres, book_sections et utilisateurs (utilisateurs finaux du système). dans table de livre a colonnes pour BOOK_TITLE, SECTION_ID (book_section), data_entered_user_id (qui est entré informations sur le livre).Comment écrire une classe de ligne personnalisée (étend Zend_Db_Table_Row) pour une classe db_table dans Zend Framework
aller à cette URL pour voir l'image (je permets pas d'afficher des images bacause Je suis nouveau à stackoverflow) img685.imageshack.us/img685/9978/70932283.png
dans le back-end du système, j'ai ajouté un formulaire pour éditer le livre existant (obtenir l'ID du livre à partir de GET param et remplir les données pertinentes pour le formulaire). la forme comporte des éléments pour livre_title, la section livre et l'utilisateur_données_0.
pour obtenir des données de livre passionnant à « sous forme d'édition du livre » Je joindre les tables de book_section et de l'utilisateur avec table livre pour obtenir book_section_name et nom d'utilisateur (de data_entered_user: lire affichage seulement- sur la barre latérale)
go à cette URL pour voir l'image (je permets pas d'afficher des images bacause Je suis nouveau à stackoverflow) img155.imageshack.us/img155/2947/66239915.jpg
En classe étend App_Model_Book Zend_Db_Table_Abstract
public function getBookData($id){
$select = $this->select();
$select->setIntegrityCheck(false);
$select->from('book', array('id','section_id','data_entered_user_id',...));
$select->joinInner('section','book.section_id = section.id',array('section_name' =>'section.name'));
$select->joinInner(array('date_entered_user' => 'user'),'book.date_entered_user_id = date_entered_user.id',array('date_entered_user_name' =>'date_entered_user.user_name'));
$select->where("book.id = ?",$id);
return $this->fetchRow($select);
}
public function updateBookData($id,$title,$section_id,...)
{
$existingRow = $this->fetchRow($this->select()->where('id=?',$id));
$existingRow->title = $title;
$existingRow->section_id = $section_id;
//....
$existingRow->save();
}
En Admin_BookController -> editAction()
$editForm = new Admin_Form_EditBook();
$id = $this->_getParam('id', false);
$bookTable = new App_Model_Book();
$book_data = $bookTable ->getBookData($id);
//set values on form to print on form when edit book
$editForm->book_title->setValue($book_data->title);
$editForm->book_section->setValue($book_data->section_name);
//........
//If form data valid
if($this->getRequest()->isPost() && $editForm->isValid($_POST)){
$bookTable = new App_Model_Book();
$bookTable ->updateBookData(
$id,
//get data from submitted form
$editForm->getValue('title'),
//....
);
lors de l'édition d'un livre exsiting
- obtenir des données de méthode getBookData() de la classe App_Model_Book
- Si les données de formulaire est valide après avoir envoyé des données modifiées, enregistrez les données avec la méthode updateBookData() sur la classe App_Model_Book
mais j'ai vu que si je créé une personnalisée Db_Table_Row (étend Zend_Db_Table_Row) classe pour la table de livre avec book_section_name et data_entered_user_name je peux l'utiliser pour obtenir des données comptables existantes et l'enregistrer après l'édition données du livre sans créer une nouvelle classe Book (db_table) et sans appeler updateBookData() pour enregistrer les données mises à jour .Mais je ne sais pas quel code je dois d écrire sur le code personnalisé Db_Table_Row (extends Zend_Db_Table_Row) class.
Je pense que vous pouvez comprendre mon problème, dans un langage simple
comment écrire une classe db_table_row personnalisée pour créer une ligne personnalisée avec des données forme 2 tables jointes pour une classe db_table perticular?
Je suis nouveau sur zend framewok et sur stackoverflow. pardonnez-moi si vous avez confondu avec ma première question.
Merci encore.
S'il vous plaît, postez votre code. Il sera plus facile de vous fournir le meilleur moyen de voir exactement ce que vous faites. Sans le voir, la seule chose que je peux penser, est d'utiliser une méthode -> update ($ data, 'id = 1') au lieu de faire à nouveau une instance du livre. –
désolé, je suis nouveau à zend framewok et à stackoverflow. Je l'ai mis à jour avec 2 images, mais je ne peux pas le poster parce que je suis nouveau sur stackoverflow alors j'ajoute des URLs. merci encore – knodumi
Le ** Un ** et ** Seulement ** Tutoriel pour cela est [ici] (http://mattmccormick.ca/2010/04/24/how-to-easily-create-models-and- table-relations-dans-zend-cadre /) – Marecky