Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-02-2009 17:50:13

squall6969
Membre
Date d'inscription: 14-09-2008
Messages: 90

[1.7][Zend_Db_Select] Selectionner toutes les colonnes SAUF

Bonjour,

Après mettre longuement attardé sur la réalisation d'un CRUD, je trouve qu'il manque un outil à zend : le datagrid !

En réalisant mon datagrid, j'aimerais pouvoir donner juste le nom de la table pour qu'il me génère un tableau aproprié.

Seulement j'aimerais pouvoir enlever les colonnes voulu de la requête.

Code:

$registry = Zend_Registry::getInstance();
$db = $registry->get('db');


$datagrid = new Rem_Datagrid();
$datagrid->setDb($db);
$datagrid->setTable('client');
$datagrid->hideCol('client_password');

$this->view->datagrid = $datagrid;

"Behind the scene" je créer un objet zend select, mais je n'ais pas trouvé de façon simple pour enlever une colonne de la requête.
Avec la méthode join(), les dernier array permet de fournir les colonnes non désirés mais cet argument n'est pas disponible pour la méthode from() ???

Y aurait t'il une astuce afin d'éviter de devoir renseigner toutes les colonnes que l'on veut apparaître au lieu de dire juste celles que l'on souhaite enlever?

De plus je n'arrive plus à trouver à partir d'où on peut récupérer le nom des colonnes de la base de donnée, parce que dans le pire des cas j'utiliserai in_array couplé à unset pour conserver la structure que je voudrais donner à mon datagrid au sacrifice d'un peu plus de traitement.



J'espère avoir été claire,

Un grand merci d'avance !

Hors ligne

 

#2 13-02-2009 12:04:13

squall6969
Membre
Date d'inscription: 14-09-2008
Messages: 90

Re: [1.7][Zend_Db_Select] Selectionner toutes les colonnes SAUF

Apparemment je n'est pas été clair, ou alors le problème n'est pas facile à résoudre...

Hors ligne

 

#3 13-02-2009 17:29:44

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: [1.7][Zend_Db_Select] Selectionner toutes les colonnes SAUF

Salut,

Tu peux tenter un truc du genre :

Code:

$colonnesTable = $this ->info(Zend_Db_Table_Abstract::COLS);

foreach ($colonnesCaches AS $uneColonne) {
    unset($colonnesTable[array_search($uneColonne, $colonnesTable)]);
}

$Select = $this -> select() -> from($this -> _name, $colonnesTable);

Tu récupéres les colonnes de la table dans un array et tu supprime de cet array toutes les colonnes non désirés. Ensuite tu passe les colonnes restantes à ton objet select()

Y a p'tet mieux mais je vois pas... ça peux te donner une piste.

A adapter avec ta classe bien sur smile

Cordialement,
Kaimite

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages