IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Probleme avec Entity


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut Probleme avec Entity
    Salut je vient ici car je rencontre un probleme avec mon entity de user
    J'ai mon fichier UsersController :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    namespace App\Controller\Admin;
     
    use Cake\Event\Event;
     
    class UsersController extends AppController{
     
        public function beforeFilter(Event $event) {
            $this->Auth->allow(['logout', 'add']);
        }
     
        public function add() {
            $user = $this->Users->newEntity();
            if ($this->request->is('post')) {
                $user = $this->Users->patchEntity($user, $this->request->data);
                if ($this->Users->save($user)) {
                    $this->Flash->success('Vous ete inscrit');
                    return $this->redirect(['controller' => 'Galleries', 'action' => 'index']);
                }
                $this->Flash->error('Impossible de vous inscrire');
            }
            $this->set(compact('user'));
        }
     
        public function login() {
            $user = $this->Users->newEntity();
            if ($this->request->is('post')) {
                $user = $this->Auth->identify();
                if ($user) {
                    $this->Auth->setUser($user);
                    return $this->redirect($this->Auth->redirectUrl());
                }
                $this->Flash->error('Impossible de vous connecter');
            }
            $this->set(compact('user'));
        }
     
        public function logout() {
            return $this->redirect($this->Auth->logout());
        }
     
    }
    et mon fichier User :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    namespace App\Model\Entity;
     
    use Cake\Auth\DefaultPasswordHasher;
    use Cake\ORM\Entity;
     
    class User extends Entity
    {
     
        // Rend les champs assignables en masse sauf pour le champ clé primaire "id".
        protected $_accessible = [
            '*' => true,
            'id' => false
        ];
     
        // ...
     
        protected function _setPassword($password)
        {
            return (new DefaultPasswordHasher)->hash($password);
        }
     
        // ...
    }
    mais le probleme c'est quand quand je creer des nouvelle utilisateur il m'utilise l'entity de base et pas celle de user donc le mot de passe n'est pas haché c'est la premiere fois que j'ai un proble avec les entity et je ne voit pas d'ou ca peut venir
    mon systeme d'identification se situe dans le prefix admin car enfete je n'est pas besoin d'identification dans tout les reste de mon application sauf dans la partie administation.
    pour la configuration du composant Auth j'ai mit dans mon AppController qui se situe dans le prefix admin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    namespace App\Controller\Admin;
     
    use App\Controller\AppController as Controller;
    use Cake\Event\Event;
     
    class AppController extends Controller{
     
        public $helpers = ['AkkaCKEditor.CKEditor' => [
            'version' => '4.5.3',
        ]];
     
        public function initialize() {
            $this->loadComponent('Flash');
            $this->loadComponent('Auth', [
                'authorize' => ['Controller'],
                'loginRedirect' => [
                    'controller' => 'Galleries',
                    'action' => 'index'
                ],
                'logoutRedirect' => [
                    'controller' => 'Presses',
                    'action' => 'index'
                ],
                'loginAction' => [
                    'controller' => 'Users',
                    'action' => 'login'
                ]
            ]);
        }
     
        public function beforeRender(Event $event) {
            parent::beforeRender($event);
            $this->viewBuilder()->layout('admin');
        }
     
    }

  2. #2
    Membre Expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Pour ma part, ça marche très bien comme ça (juste la partie ajout j'ai testé).

    Tu peux debugger ce que contient ton user après l'avoir créé et hydrater ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public function add() {
            $user = $this->Users->newEntity();
            if ($this->request->is('post')) {
                $user = $this->Users->patchEntity($user, $this->request->data);
                debug($user); exit;
                if ($this->Users->save($user)) {
                    $this->Flash->success('Vous ete inscrit');
                    return $this->redirect(['controller' => 'Galleries', 'action' => 'index']);
                }
                $this->Flash->error('Impossible de vous inscrire');
            }
            $this->set(compact('user'));
        }

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Citation Envoyé par Spartacusply Voir le message
    Pour ma part, ça marche très bien comme ça (juste la partie ajout j'ai testé).

    Tu peux debugger ce que contient ton user après l'avoir créé et hydrater ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public function add() {
            $user = $this->Users->newEntity();
            if ($this->request->is('post')) {
                $user = $this->Users->patchEntity($user, $this->request->data);
                debug($user); exit;
                if ($this->Users->save($user)) {
                    $this->Flash->success('Vous ete inscrit');
                    return $this->redirect(['controller' => 'Galleries', 'action' => 'index']);
                }
                $this->Flash->error('Impossible de vous inscrire');
            }
            $this->set(compact('user'));
        }
    Moi j'ai un probleme il ne prend meme pas mon entity enfete il prend celle de basse voici ce que me donne un debug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    \src\Controller\Admin\UsersController.php (line 14)
    object(Cake\ORM\Entity) {
     
    	'[new]' => true,
    	'[accessible]' => [
    		'*' => true
    	],
    	'[dirty]' => [],
    	'[original]' => [],
    	'[virtual]' => [],
    	'[errors]' => [],
    	'[repository]' => 'Users'
     
    }
    Est-ce que ca ne vient pas du faite que mon controller Users et mon Component Auth ce trouve dans le prefixe Admin ?

Discussions similaires

  1. Probleme de connexion avec Entities Framework
    Par gstrit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 09/06/2009, 10h09
  2. Probleme avec mon premier Entity et EJB3!
    Par KING_OF_GRACELAND dans le forum JPA
    Réponses: 1
    Dernier message: 29/02/2008, 11h57
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 23h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 08h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 09/06/2002, 00h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo