Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'aimerai récupérer le rôle de ma table utilisateur avec fetchOne(), mais ça ne passe pas. Voici mon code :
$sql = 'SELECT users_status FROM users WHERE users_login = mon_user';
$result = $this->fetchOne($sql);
=>Fatal error: Call to undefined method Model_DbTable_Users::fetchOne()
Une idée ?
Hors ligne
Je crois que le fetchOne n'est pas implemeté dans la classe db_table....
Hors ligne
Hello,
$this->getAdapter()->fetchOne($sql);
A+
Hors ligne
Hello,
fetchRow renvoie un row (Zend_Db_Table_Row) dans Zend_Db_Table mais un array dans Zend_Db_Adaptateur_*. fetchOne renvoie une seule valeur (integer, string...)
A+
Hors ligne
mikaelkael a écrit:
Hello,
fetchRow renvoie un row (Zend_Db_Table_Row) dans Zend_Db_Table mais un array dans Zend_Db_Adaptateur_*. fetchOne renvoie une seule valeur (integer, string...)
A+
Exactement, et comme moi je souhaiterai récupérer uniquement une valeur, fetchOne apparait comme le choix le plus optimisé. Reste à savoir comment l'utiliser dans Zend_Db_Table (ou Zend_Db_Table_Abstract, j'ai encore un peu de mal à saisir les différences).
Je vais tester vos propositions et je vous tiens au courant. merci
Hors ligne
Kaimite a écrit:
Bonjour,
Merci pour l'info.
Je ne connaissait pas fetchOne.
Donc si je comprends bien fetchOne te renvoie directement la valeur de users_status.
Cordialement,
Kaimite
Si j'ai bien compris oui
Hors ligne
Hello,
Pour vous rassurer, vous avez bien compris
A+
Hors ligne
Avec :
public function getRoleByLogin($login)
{
$sql = 'SELECT users_status FROM users where users_login = "'.$login.'"';
$result = $this->getAdapter()->fetchOne($sql);
if(!$result)
{
throw new Exception('Impossible de trouver le role avec le login $login');
}
return $result;
}
J'obtiens:
Fatal error: Call to a member function getRoleByLogin() on a non-object in C:\wamp\www\ZFmvc\application\controllers\AuthController.php on line 102
une idée?
Hors ligne
Salut,
L'erreur ne vient pas du code que tu montres
C'est avant ça, l'objet depuis lequel tu appelles la méthode en question.
A+ benjamin.
Hors ligne
$users = new Model_DbTable_Users();
$users = $users->getUsersByLogin($username);
$role = $users->getRoleByLogin($username);
Aaaarf bien vu Benjamin, voilà ce qui arrive quand on fait des raccourcis qui servent à rien
Merci
Hors ligne