Bonjour,
J'ai suivi le tutoriel du début à la fin mais je ne comprend toujours pas : comment on utilise les fonction tel que

find();

etc ...

8 réponses


LesTutossUE4
Auteur
Réponse acceptée

J'ai réussi ! En faite "$_SESSION'user']" contient déjà toute la table !
Il suffit d'écrire ceci pour voir les credits :

<?php
if (isset($_SESSION'User'])){
$cursession = $_SESSION'User'];
}
echo $cursession->credit;
?>

C'est quoi que tu ne comprends pas?

Comment utiliser les fonction public !
Comme celle la par exemple (sauf qu'elle ne fonctionne pas je pense):

function infouser($userlogin){
            $this->loadModel('User');
            $info = array(); 
            $info = $this->User->find(array(
                'conditions' => array('login' => $userlogin)
            ));
            $this->set($info)           
    }

Je ne vois pas pourquoi elle ne fonctionnerait pas à part que au lieu de faire $info = array() fait plutôt

function infouser($userlogin){
        $this->loadModel('User');

        $info'user'] = $this->User->find(array(
            'conditions' => array('login' => $userlogin)
        ));
        $this->set($info)            
}

Pour utiliser les fonction de ton model il suffit de faire $this->Tonmodele->lafonction

Après si tu veux plus d'information dis nous exactement ce que tu comprends pas

Bah je comprend pas c'est comment l'utiliser :
Sur ma table 'user' j'ai rajouter des champs tel que 'credit' pour l'argent virtuel que les utilisateurs possèdent. je voudrait pouvoir rajouter dans le layout "default" sur le menu :

<li>Vous avez <?php echo $credit; ?> € actuellement sur votre compte</li>

Comment l'utiliser et où placez ma fonction !

Pour l'afficher tu fais:

<li>Vous avez <?php echo $user->credit; ?> € actuellement sur votre compte</li>

Le $user vient de $info'user'] et credit correspond au nom du champ dans ta table user

Si tu veux juste récupérer le crédit fait plutôt:

function infouser($userlogin){
        $this->loadModel('User');

        $info'user'] = $this->User->find(array(
            'fields' => 'credit',
            'conditions' => array('login' => $userlogin)
        ));

        $this->set($info)            
}

J'ai insérer la fonction comme tu me la dit :

function infouser(){
        $this->loadModel('User');

        $info'user'] = $this->User->find(array(
            'fields' => 'credit',
            'conditions' => array('login' => $_SESSION'User'])
        ));

        $this->set($info)           
    }

j'ai fait quelque changement (rien de bien méchant) et je l'ai mise dans "UsersController.php" je ne sais pas si c'est là qu'il faut la mettre.

Il me dit :

Notice: Undefined variable: user in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\view\layout\default.php on line 22
Notice: Trying to get property of non-object in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Site\view\layout\default.php on line 22

Ligne 22 :

<li>Vous avez <?php echo $user->credit; ?> € actuellement sur votre compte</li>

J'ai une erreur ??
Ne serait-ce pas à cause de "$_SESSION'User']" ?

Essaye avec des tests logiques comme un debug($info); dans function infouser() tu regarde si tu as un retour, si non c'est que le problème vient de là, si oui, c'est que ton fichier default.php ne sait pas atteindre la fonction infouser() , mais comme tu as dit que tu l'a inséré, le problème doit surement venir de ta fonction ou table...

Fais aussi un debug($_SESSION'user']); dans ta fonction pour voir si ta session est instanciée...

Fais les tests et donne nous les résultats.