Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut a tous,
Je suis débutant avec ce framework ( et pas ultra expérimenté en prog..) je vous demanderai donc d'être indulgent:)
J'ai suivis le tuto Quickstart (tres complet!) et je suis en train d'essayer de l'adapter pour faire un petit site d'édition pour mes cours.
J'ai 2 questions auxquelles je n'ai pas trouvé de réponse sur le net :
- Dans la classe Model_Guestbook (application/model/GuestBook.php)
on trouve :
return $this->getTable()->fetchAll('1')->toArray();
je voudrais savoir a quoi correspond ce '1'.
- Ma deuxieme question est toujours a propos de la meme classe, on a :
$table = $this->getTable(); $select = $table->select()->where('id = ?', $id);
mais dans la doc pour un select on part toujours d'un objet DB et non table...
Je voudrais savoir si il est possible de faire un select() sur certaine colonne avec un objet table, dans la doc a partir d'un objet db on a:
$select = $db->select()->from('table','colonne')
comment faire en partant d'un objet table?
voila , en tous les cas même si je galère un peu de temps en temps, j'aime un peu plus chaque jour ce framework !
Dernière modification par eilijah (19-02-2009 21:11:09)
Hors ligne
J'avais pas regardé au bon endroit dans la doc
$table = new Bugs(); $select = $table->select(); $select->from($table, array('bug_id', 'bug_description')) ->where('bug_status = ?', 'NEW'); $rows = $table->fetchAll($select);
Ma premiere question est toujours d'actualité !
Hors ligne
L'élément '1' passé en paramètre représente l'attribut "$where" de la fonction fetchAll().
public function fetchAll($where = null, $order = null, $count = null, $offset = null) { if (!($where instanceof Zend_Db_Table_Select)) { $select = $this->select(); if ($where !== null) { $this->_where($select, $where); } if ($order !== null) { $this->_order($select, $order); } if ($count !== null || $offset !== null) { $select->limit($count, $offset); } } else { $select = $where; } $rows = $this->_fetch($select); $data = array( 'table' => $this, 'data' => $rows, 'readOnly' => $select->isReadOnly(), 'rowClass' => $this->_rowClass, 'stored' => true ); @Zend_Loader::loadClass($this->_rowsetClass); return new $this->_rowsetClass($data); }
J'ai jeté un rapide coup d'oeil sur l'API de ZF et cet attribut doit être une clause where (c'est le cas ici) d'une requête sql ou une requête sql (objet Zend_Db_Table_Select).
Je peux me tromper mais à mon avis ZF génère une requête du style SELECT ... FROM ... WHERE 1;. Si c'est le cas, le '1' ne sert à rien. Tu as essayé de l'enlever?
Hors ligne
Non je n'ai pas essayé pour la simple raison que je me suis empêtré dans une super méthode pour gérer tous les fetch possibles -.-.
Mais en effet selon ce que tu cites ça a l'air d'être le where et de ne servir donc à rien
Enfin vu que c'est dans le tuto quickstart officiel ça parait bizarre qu'ils le mettent si ça sert à rien!
étrange donc
Je testerai, merci de ta réponse Davjack!
Dernière modification par eilijah (19-02-2009 22:15:37)
Hors ligne
Ca marche tres bien sans je sais pas ce que ce 1 fait là
Hors ligne
Il est possible qu'à l'époque de la création du tuto, le paramètre $where était obligatoire. Dans ce cas, la solution du '1' permet de résoudre le problème.
Hors ligne
en effet je n'avais pas pensé à ça
Hors ligne