我正在尝试将模型实例保存到数据库中,这是我以前保存过很多次的模型。但现在它似乎已经停止了工作,通过一些邪恶的魔法。
我在EmailConfirmation
旁边创建User
。 User
已成功保存,但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)
所以对我来说,似乎框架经历了保存模型的所有动作,并报告它应该已保存,在true
和save()
上返回create()
并且没有错误消息。但显然,这里出了点问题。
我做错了什么?我错过了什么?