Problème sélection du rôle (jour 4)

Par Frankido, il y a 13 ans


Bonjour/bonsoir,
j'ai suivi le tuto pour développer un site à l'aide de cakephp mais j'ai un problème dans le formulaire pour choisir un rôle à l'utilisateur. J'ai le code suivant dans ma vue :

<?php 
        echo $this->Form->create('User');
        echo $this->Form->input('username', array('label' => 'Login'));
        echo $this->Form->input('password', array('label' => 'Mot de passe'));
        echo $this->Form->input('passwordconfirm', array('label' => 'Confirmer le mot de passe', 'type' => 'password'));
        echo $this->Form->input('role', array('label' => 'Rôle'));
        echo $this->Form->end('Envoyer'); 
?>

Et celui-ci dans mon Controller :

function admin_edit($id = null){
        if($this->request->is('post') || $this->request->is('put')){
            $d = $this->request->data'User'];
            if($d'password'] != $d'passwordconfirm']){
                $this->Session->setFlash('Les mots de passe ne correspondent pas.', 'notif', array('type' => 'error'));
            }else {
                $this->User->save($this->request->data);
            }
            $this->User->save($this->request->data);
        }elseif($id) {
            $this->User->id = $id;
            $this->request->data = $this->User->read('username, role');
        }
        $d = array();
        $d'roles'] = array(
            'admin' => 'admin',
            'user' => 'membre'
        );

Cakephp ne détecte pas que rôle est un select du tableau $d et me met un champ texte classique.

Merci d'avance pour votre aide.

7 réponses

STUDIO-SFX, il y a 13 ans

et avec
echo $this->Form->select('role', array('label' => 'Rôle'));

Frankido, il y a 13 ans

Le champ passe bien en select mais les rôles ne s'affichent pas (le label ne se place pas devant le champ mais peut être sélectionné).

zenkiai, il y a 13 ans

Salut le faite que tu n'ais pas de champ id dans ta vue est normal ? ou tu ne l'a pas mis tout simplement sur le topic ?

Frankido, il y a 13 ans

Non c'est normal (j'ai suivi le tuto et grafikart ne met pas de champ id dans la vue)

zenkiai, il y a 13 ans

a 34min58s il ajoute un input dans la vue pour l'id et par conséquent il ajoute dans la fonction admin_edit et read : l'id à côté de l'username et du role sans espace.

zenkiai, il y a 13 ans

Juste pour info peux tu faire un debug de l'admin_edit et nous donner le résultat.

Frankido, il y a 13 ans

C'est bon j'ai réglé le problème merci de votre aide j'avais juste oublié d'envoyer $d à la vue ....
Merci encore de votre aide !