首页 文章

如何在laravel中将数据插入数据库

提问于
浏览
2

我试图将数据插入一个表,我的表有三列,id-auto increment,phoneno,login_date . 我正在尝试下面的代码 .

$input = Request::has('phoneno');
$login_history = new LoginHistory;
$login_history->phoneno=$input;
$login_history->login_date=date('Y-m-d H:i:s');
$login_history->save();

但我得到以下错误 .

SQLSTATE [42S22]:找不到列:1054未知列'updated_at' in 'field list'(SQL:插入 login_historyphonenologin_dateupdated_atcreated_at )值(1,2015-12-14 08:55:25,2015-12-12) 08:55:25,2015-12-14 08:55:25))

3 回答

  • 2

    您的表中没有 created_atupdated_atEloquent 默认情况下所有模型都有 . 通过相应地设置 $timestamps 属性,可以创建这些列或只是禁用该模型的时间戳:

    class LoginHistory {
      protected $timestamps = false;
    }
    
  • 2

    这是因为您的数据库表中没有字段 updated_at .
    确保添加:

    $table->timestamps()

    迁移并重新迁移数据库(或更新表) .

    这将添加字段 created_atupdated_at .

  • 2

    这个错误的原因很简单 . 默认情况下,Laravel假定您的表具有 created_atupdated_at 字段 . 因此, ->save() 方法尝试存储时间戳,如您在查询中看到的那样 .

    如果您不希望包含这些,请在模型中添加 public $timestamps = false; .

相关问题