2014-07-16 22 views
8

Tôi khá mới đối với Phalcon, tôi thực sự thích nó, hiện đang làm việc trong dự án đầu tiên của tôi trong đó, tuy nhiên tôi hiện đang gặp một vấn đề với ORM.Phalcon tiết kiệm không hoạt động

Tôi dường như không thể lưu.

mô hình người dùng của tôi hiện đang có một thiết lập bảng đơn giản

id (int, PK) tên (string) tên người dùng (string) email (string) hoạt động (int) CreatedDate (int)

và mô hình của tôi đã những định nghĩa là thuộc tính bằng cách sử dụng các chú thích chiến lược:

<?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; 

khởi tạo của tôi có như sau:

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

} 

sau đó tôi có một hình thức đăng ký đơn giản mà tôi đang trỏ đến một phương pháp trong một trong các bộ điều khiển của tôi, nơi tôi làm một số cvalidation, sau đó cố gắng để thực hiện tiết kiệm:

 $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(''); 

     } 

tôi đã thiết lập các hồ sơ để lưu vào một khúc gỗ và tất cả những gì có thể xảy ra khi tôi làm một đăng ký là:

[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` 

Sau đó Nó chỉ cổng tôi qua để giao diện chính với lỗi flash "một lỗi đã xảy ra" như tôi đã de fined abovem vì vậy tôi là loại bị mắc kẹt là tại sao nó không phải là tạo ra người dùng mới và chỉ trở về sai về lưu người dùng.

Cảm ơn trước

+2

Kiểm tra '$ user-> getMessages()' cho các lỗi như ở đây: http://docs.phalconphp.com/en/latest/reference/models.html#creating-updating -records – jodator

+0

@jodator Cảm ơn yeah rằng đã làm việc và tôi đã tiết kiệm để làm việc, muốn bật nó trong một câu trả lời và tôi sẽ chấp nhận nó? –

+1

Tôi rất vui vì đã giúp. Cảm ơn trước :) – jodator

Trả lời

Các vấn đề liên quan