2014-07-16 4 views
8

Je suis assez nouveau pour Phalcon, je l'aime vraiment, travaille actuellement sur mon premier projet, mais je rencontre actuellement un problème avec l'ORM.Phalcon enregistrer ne fonctionne pas

Je semble être incapable d'enregistrer.

Mon utilisateurs modèle dispose actuellement d'une configuration simple de la table

id (int, PK) Nom (string) nom d'utilisateur (string) email (string) active (int) CreatedDate (int)

et mon modèle a défini comme ces propriétés à l'aide de la stratégie annotations:

<?php 

/** 
* Users class 
* 
* Represents Holla users 
* 
*/ 
class Users extends Phalcon\Mvc\Model 
{ 

/** 
* @Primary 
* @Identity 
* @Column(type="integer", nullable=false) 
*/ 
public $id; 

/** 
* @Column(type="string", length=70, nullable=false) 
*/ 
public $name; 

/** 
* @Column(type="string", length=70, nullable=false) 
*/ 
public $username; 

/** 
* @Column(type="string", length=256, nullable=false) 
*/ 
public $password; 

/** 
* @Column(type="integer", nullable=false) 
*/ 
public $active; 

/** 
* @Column(type="integer", nullable=false) 
*/ 
public $createdDate; 

mon initialize a les suivantes:

public function initialize() 
{ 

    $this->setSource('users'); 
    $this->hasManyToMany('id', 'UsersAttributes', 'userId', 'attributeId', 'Attributes', 'id', array('alias' => 'attributes')); 
    $this->hasMany('id', 'Status', 'userId'); 
    $this->hasMany('id', 'UsersNeighbors', 'userId'); 
    $this->hasMany('id', 'UsersFriends', 'userId'); 
    $this->hasMany('id', 'UsersNeighborhoods', 'userId'); 

} 

J'ai alors un simple formulaire d'inscription que je suis en montrant une méthode dans un de mes contrôleurs où je fais un peu cvalidation, puis essayez de faire la sauvegarde:

 $user = new Users(); 

     $user->name = $name; 
     $user->username = strtolower(str_replace(' ', '', $name)); 
     $user->password = $this->security->hash($password); 

     if($user->save()) 
     { 

      $this->flash->success('Registered successfully!'); 

      $this->session->set('auth', array(
       'id' => $user->id, 
       'name' => $user->name 
      )); 

      return $this->response->redirect('user/home'); 

     } 
     else 
     { 

      $this->flash->error('An error occured, unable to register'); 

      return $this->response->redirect(''); 

     } 

J'ai installé le profileur pour enregistrer dans un journal et tout ce qui semble se produire quand je fais un enregistrement est:

[Wed, 16 Jul 14 21:46:44 +0000][INFO] SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`='users' 
[Wed, 16 Jul 14 21:46:44 +0000][INFO] DESCRIBE `users` 

Alors juste moi ports jusqu'à la vue principale avec l'erreur flash « une erreur est survenue » comme je l'ai de amende abovem donc je suis un peu bloqué quant à pourquoi il ne crée pas le nouvel utilisateur et retourne juste faux sur l'utilisateur sauvegarder.

Merci à l'avance

+2

Check '$ user-> getMessages()' pour des erreurs comme ici: http://docs.phalconphp.com/en/latest/reference/models.html#creating-updating -records – jodator

+0

@jodator Merci ouais ça a marché et j'ai la sauvegarde au travail, je veux l'afficher dans une réponse et je vais l'accepter? –

+1

Je suis content que cela ait aidé. Merci d'avance :) – jodator

Répondre

Questions connexes