Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Voici le model que je veux utiliser :
class bd0x_Language extends Zend_Db_Table { protected $_schema = '0rigin_xtrem'; protected $_name = '0x_language'; protected $_primary = 'language_id'; public function getSelectByName($language_short_name) { $select = $this ->select() ->from(array('oxl' => '0x_language'), array ('oxl_language_id' => 'language_id' , 'oxl_language_name' => 'language_name', 'oxl_language_short_name' => 'language_short_name')) ->where('oxl.language_short_name = ?',$language_short_name); return $this->fetchAll($select); } }
et je l'appelle de cette façon depuis un plugin :
$paramLanguageShortName = $this->getRequest()->getParam('language'); $bdox_Language = new bd0x_Language(); $dataLanguage = $bdox_Language->getSelectByName($paramLanguageShortName );
Si j'affiche le contenu de $paramLanguageShortName , j'ai bien => fr dans mon cas. Je le passe donc en paramètre de mon appel au model.
Mon problème c'est que si je fait un echo $select dans mon model, voici l'affichage de la requête :
SELECT `oxl`.`language_id` AS `oxl_language_id`, `oxl`.`language_name` AS `oxl_language_name`, `oxl`.`language_short_name` AS `oxl_language_short_name` FROM `0x_language` AS `oxl` WHERE (oxl.language_short_name = ?)
On voit que le point d'interrogation n'est pas remplacé par la valeur de $language_short_name et je n'arrive pas à savoir d'où cela vient.
Si j'appelle ma fonction en faisant $bdox_Language->getSelectByName('fr'); , tout marche parfaitement.
Avez vous un idée sur la raison du problème ?
Merci d'avance.
Dernière modification par slaughter (16-08-2008 17:57:45)
Hors ligne
Moi je concatène dans les where() comme ceci :
->where('oxl.language_short_name = '.$language_short_name);
Hors ligne
Bon ba j'ai finalement réussi avec le ? en retapant la commande. J'avais dû faire une erreur de syntaxe.
J'ai maintenant une autre question. Je voudrais avoir la valeur du champ oxl_language_id directement dans mon controller mais lorsque je fais cette commande ...
echo $dataLanguage->oxl_language_id;
J'ai le message d'erreur suivant ...
Notice: Undefined property: Zend_Db_Table_Rowset::$oxl_language_id in .....
Je n'arrive pas à voir d'où cela vient.
Dernière modification par slaughter (16-08-2008 18:01:19)
Hors ligne
salut,
tu cherchez ta propriété sur un Rowset, alors qu'elle est présente sur Row
echo $dataLanguage->current()->oxl_language_id;
Hors ligne
Pages: 1