Information sur un élément dans CakePHP

Par Mehdi Moalla, il y a 12 ans


Bonjour,

J'ai crée un site avec CakePHP en suivant les tutos et la formation mais j'ai un problème.

Dans mon site j'ai une sidebar qui contient un formulaire de connexion (login et pwd) mais ce sidebar c'est un element de la vue et nn pas une vue

Dans les tutos de l'auth vous faite à chaque fois une auth avec une vue mais comment faire si j'ai un element :D

8 réponses

Kareylo, il y a 12 ans

Exactement de la même façon !
Un élément est un peu comme une "partie" de la vue qu'on rajoute (C'est un include sous forme d'objets, si tu préfères)

Mehdi Moalla, il y a 12 ans

j'ai essayer la function login mais c marche pas par contre si je la mais dans le dossier view ca marche

Kareylo, il y a 12 ans

Chez moi, ça marche très bien.
Tu le fais bien de la façon suivante :

<?= $this->Form->create('User', array('controller' => 'users', 'action' => 'login')); ?>
    <?= $this->Form->input('username'); ?>
    <?= $this->Form->input('password'); ?>
<?= $this->Form->end('Se connecter'); ?>
Grimp, il y a 12 ans

Pareil pour moi dans mon élément je n'ai pas connexion qui marche, il ne faut pas ajouter $this->requestAction dans l'élément?

Kareylo, il y a 12 ans

Vous faites bien le $this->Form->creat('User', array('controller' => 'users', 'action' => 'login')); ?
Car si vous n'appelez pas le Controller, le framework ne sait pas vers quel controller aller pour valider les données.

Grimp, il y a 12 ans

C'est ça! Merci! :)

Kareylo, il y a 12 ans

Tu dois créer ton formulaire comme ça :

<?= $this->Form->create('User', array('controller' => 'users', 'action' => 'login')); ?>
    <?= $this->Form->input('username'); ?>
    <?= $this->Form->input('password'); ?>
<?= $this->Form->end('Se connecter'); ?>

Sans oublier de déclarer le tableau contenant le Controller et l'Action.

Mehdi Moalla, il y a 12 ans

Kareylo je connais cette méthode mais moi dans l'action login je n'est pas de vue "login" associer mais plutot un element dans le dossier /view/elements et je veux que ca marche depuis cette element je ne veux pas créer une vue