2010-07-02 4 views
3

J'ai une table de base de données qui ressemble à ceci:Comment chercher un modèle Zend en utilisant un champ

CREATE TABLE IF NOT EXISTS `articles` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `texte` varchar(255) NOT NULL, 
    `rubrique` varchar(255) NOT NULL, 
    PRIMARY KEY (id) 
); 

Ce qui est PDO mappée comme ceci:

class Application_Model_DbTable_Articles extends Zend_Db_Table_Abstract 
{ 
    protected $_name = 'articles'; 

    //this is where I have a problem 
    public function getArticleByRubrique($rubrique) 
    {   
     $row = $this->fetchRow('rubrique = ' . $rubrique);  
     return $row->toArray();  
    } 

} 

Dans mon vue Je veux aller chercher le articles qui ont un champ rubrique == "club":

Pour récupérer tous les éléments, ce code fonctionne très bien en fetchAll():

$articles = new Application_Model_DbTable_Articles(); 
     $this->view->articles = $articles->fetchAll(); 

Mais quand je le fais avec getArticleByRubrique() je reçois cette erreur:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'club' in 'where clause'

Répondre

2

Vous pouvez toujours utiliser fetchAll() pour faire le travail , sans avoir besoin d'écrire une méthode juste pour le faire:

Dans l'action du contrôleur:

$articles = new Application_Model_DbTable_Articles(); 
$this->view->articles = $articles->fetchAll('rubrique = "club"'); 
Questions connexes