Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 27-02-2012 15:16:40

LeDuc08
Membre
Date d'inscription: 23-02-2009
Messages: 22

[Zend_Db][1.7.4] Variables protégés et noms de colonnes

Bonjour à tous,

Voilà, je voudrais faire les choses correctement dans la construction de mes modèles, mais il me manque un maillon...
Dans la création du modèle, j'attribue des variables de l'objet pour mes noms de colonnes:

Code:

[lang=php]class MaClass extends Zend_Db_Table_Abstract
{
    protected $_name     =    'myTable';
    protected $_primary     =    'myTable_ID';
    protected $_nomCol1     =    'maColonne1';
...

Plus loin dans le code, je veux faire référence au nom de la colonne 1.
Pour changer la valeur de la colonne à l'aide du row cela fonctionne:

Code:

 [lang=php]   public function updateMyColumnValue($iTableId, $sColumn1Value)
        $row = $this->find($iTableId)->current();
        $row->$this->_nomCol1     =    $sColumn1Value;
        $row->save(); // Ok

        return true;
    }

Par contre, si je veux utiliser la valeur pour appeler une autre fonction, cela ne fonctionne plus et je récupère une erreur: "Object of class myClass could not be converted to string"


Code:

 [lang=php]   public function getOtherLineWithSameMyColumnValue($iTableId)
        $row = $this->find($iTableId)->current();
        
        $rowSet = $this->otherFunction($row->$this->_nomCol1); // Erreur levée. 
...       

        return true;
    }

Est-ce possible d'utiliser uniquement la variable déclarée à la création du modèle?
Si oui, comment faite vous dans le cas similaire à celui ci-dessus?

D'avance, merci pour votre aide.

Hors ligne

 

#2 27-02-2012 15:23:35

f.garoby
Membre
Date d'inscription: 02-03-2011
Messages: 105

Re: [Zend_Db][1.7.4] Variables protégés et noms de colonnes

Bonjour,
Essaye avec une syntaxe comme celle-ci :

Code:

[lang=php]
$row->($this->_nomCol1)

Hors ligne

 

#3 27-02-2012 18:29:22

LeDuc08
Membre
Date d'inscription: 23-02-2009
Messages: 22

Re: [Zend_Db][1.7.4] Variables protégés et noms de colonnes

Bonjour f.garoby,

Merci pour ta réponse, dans mon cas cela ne fonctionne pas, mais en inspirant de ton idée j'ai écris:

Code:

[lang=php]

$row->{$this->_nomCol1}

Et cela fonctionne nickel !!!!

Merci !!!!!

Hors ligne

 

#4 28-02-2012 08:28:00

f.garoby
Membre
Date d'inscription: 02-03-2011
Messages: 105

Re: [Zend_Db][1.7.4] Variables protégés et noms de colonnes

Ah ben oui !
Maintenant que tu le dis, ça me revient que les accolades servent à "protéger" les variables PHP (ça marche aussi pour des tableaux : {$tab['key']} )

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