Phalcon - Model ID变为0,save()返回true,getMessages()为空,afterCreate()执行

时间:2017-11-20 10:19:03

标签: php mysql insert phalcon

我正在尝试将模型实例保存到数据库中,这是我以前保存过很多次的模型。但现在它似乎已经停止了工作,通过一些邪恶的魔法。

我在EmailConfirmation旁边创建UserUser已成功保存,但EmailConfirmation未成功保存,尽管框架告诉我它应该是:

控制器代码:

if($user->save()){
    $confirmation = new EmailConfirmations();
    $confirmation->user = $user;
    var_dump((bool)$confirmation->create()); //true
    var_dump($confirmation->save()); // true
    var_dump($confirmation->refresh());
    /*
    public 'code' => string 'FEfyfzUqxDiuz0z46Ge9pHWywEbOG4vr' (length=32)
    public 'createdAt' => int 1511172203
    public 'modifiedAt' => null
    public 'confirmed' => boolean false
    public 'id' => string '0' (length=1)
    */
    var_dump($confirmation->getMessages()); // array 0 empty
}

在模型中:

public function afterCreate(){
    if(!$this->id){
        throw new \Exception("WTF!"); // is thrown
    }
    // ...
}

模型都有一个id列,定义为:

id int(10) unsigned (auto increment)

所以对我来说,似乎框架经历了保存模型的所有动作,并报告它应该已保存,在truesave()上返回create()并且没有错误消息。但显然,这里出了点问题。

我做错了什么?我错过了什么?

0 个答案:

没有答案