récupérer Auth->user("id")

Par nivdeb, il y a 13 ans


Bonjour,
je débute sue cakephp et suite au (super) tuto espace membre j'ai voulu ajouter une partie "blog" mais je suis confronté à ce problème, je souhaite lier l'article au "redacteur" mais dans mon model post.php je n'arrive pas à récupérer l'id de la personne loguée ($this->Auth->user("id")).
Pouvez vous m'aider, merci.

public function beforeSave(){
    if(empty($this->data'Post']'slug']) && isset($this->data'Post']'slug']) && !empty($this->data'Post']'name']))
            $this->data'Post']'slug'] = strtolower(Inflector::slug($this->data'Post']'name'],'-'));
            $this->data'Post']'id_redacteur'] = $this->Auth->user("id");}
        return true; 
    }

5 réponses

Ilan, il y a 13 ans

Je ne pense pas que tu puisses appeler le composant Auth dans un model.

Ce que tu pourrais faire par contre, c'est ajouter dans ton formulaire d'ajouter d'un article :

echo $this->Form->input('id_redacteur', array('type' => 'hidden', 'value' => $this->Session->read('Auth.User.id')));
Maenhyr, il y a 13 ans

Bonjour,

$this->Auth->user("id")

ne fonctionne que dans un Controller

Ceci fonctionne partout

<?php echo AuthComponent::user('id'); ?>

@Ilan : Il est tout a fait possible d'appeler le composant Auth dans un Model. Il faut comprendre que le Model est l'intelligence et que le Controller n'est qu'un facteur entre la vue et le Model. Lorsque l'on fait $this->Auth->user('id'), on appelle le Model Auth.

nivdeb, il y a 13 ans

super ça marche, merci.

Ilan, il y a 13 ans

Merci pour l'explication prbaron ;)

zkiller, il y a 13 ans

Ilan,
si un utilisateur change la valeur du champ id_redacteur cela peut posé problème donc il est évident qu'il vaut mieux utiliser le component Auth pour récupéré cette information.