Laravel停止填充updated_at但仍插入created_at

时间:2017-09-29 19:29:17

标签: php laravel

我有以下型号

class PasswordResets extends Model
{

 protected $table = 'password_resets';
  protected $fillable = [
  'token', 'email'
 ];

  public function setUpdatedAt($value){
       ;
   }//tried this but fails to work
}

我尝试使用函数setUpdatedAt但仍然失败

我使用此模型的方式是

   $passwordreset = PasswordResets::where('email', $user->email)->first();
  if(!$passwordreset){
     //insert user to password reset
      $passwordreset = new PasswordResets();
      $passwordreset->email = $user->email;
  }
  $passwordreset->token = sha1(time());
  if($passwordreset->save()){
     //send emails to user  

  }

基本上我试图找到一个用户是否存在于密码重置表中,否则添加一个新用户然后发送电子邮件。

每次尝试,我都会收到错误

  

未找到列:1054未知列' updated_at'

这是真的,因为我的表只包含列created_at

如何阻止updated_at被填满?

1 个答案:

答案 0 :(得分:2)

每次创建或编辑模型时,Laravel都会自动尝试设置created_atupdated_at字段。如果您不想使用该功能,请将其添加到您的模型中:

public $timestamps = false;

然后,您必须手动设置created_at列。

要自动执行created_at列,只需在迁移中使用默认值:

$table->timestamp('created_at')->default('CURRENT_TIMESTAMP');