我是Phalcon的新手,我非常喜欢它,目前正在研究我的第一个项目,但是我现在遇到了ORM的一个问题.
我似乎无法拯救.
我的用户模型目前有一个简单的表设置
id(int,PK)
名字(字符串)
用户名(字符串)
电邮(字符串)
活动(int)
createdDate(int)
我的模型使用注释策略将这些定义为属性:
<?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",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;
我的初始化有以下几点:
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','UsersFriends','UsersNeighborhoods','userId'); }
然后我有一个简单的注册表单,我指向我的一个控制器中的一个方法,我做了一些cvalidation,然后尝试进行保存:
$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(''); }
我已经设置了探查器以保存到日志中,当我进行注册时似乎发生的一切是:
[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`
然后它只是通过闪存错误“发生错误”将我引导到主视图,因为我已经在上面定义了所以我有点卡住为什么它不是创建新用户而只是在用户保存时返回false .
提前致谢
使用$user-> getMessages()检查错误总是有助于调试$model-> save()的错误.
原文链接:https://www.f2er.com/php/138133.html更多信息:http://docs.phalconphp.com/en/latest/reference/models.html#creating-updating-records