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


Maenhyr
Réponse acceptée

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.

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')));
nivdeb
Auteur

super ça marche, merci.

Merci pour l'explication prbaron ;)

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.