QuoteInto avec Zend_Db_Table_Abstract
Par CrazyCat le 25/03/2010, 13:29 - PHP - Lien permanent
Plus ça va et plus je suis obligé de modifier le Db_Table_Abstract, dans la lignée de lastInsertId() avec Zend_Db_Table_Abstract.
Il s'agit cette fois de pouvoir ajouter des paramêtres dans les fonctions telles que fetchAll() et fetchRow(), voici donc le code ajouté à applications/models/Db/Abstract.php:
Dans le répertoire applications/models/Db, création de la classe Default_Model_Db_Abstract qui étend la classe d'origine Zend_Db_Table_Abstract :
public function quoteInto($text) { $args = func_get_args(); array_shift($args); if (isset($args[0]) && is_array($args[0])) { $args = $args[0]; } foreach ($args as $arg) { $text = preg_replace('/\?{1}/', $this->_db->quote($arg), $text, 1); } return $text; }
On peut désormais, dans le mapper, utiliser:
$this->getDbTable()->fetchAll( $this->getDbTable()->quoteInto('requestId = ?', $requestId) );
ou
$this->getDbTable()->fetchRow( $this->getDbTable()->quoteInto('requestId = ?', $requestId) );