Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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:
[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:
[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"
[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
Bonjour,
Essaye avec une syntaxe comme celle-ci :
[lang=php] $row->($this->_nomCol1)
Hors ligne
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:
[lang=php] $row->{$this->_nomCol1}
Et cela fonctionne nickel !!!!
Merci !!!!!
Hors ligne
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
Pages: 1