【问题标题】:Laravel Migration and seeding errorLaravel 迁移和播种错误
【发布时间】:2014-08-14 16:17:03
【问题描述】:

我刚刚开始使用 Laravel 框架及其命令提示符。但是,我在迁移和播种功能方面遇到了问题。

我正在 Windows 7 64 位操作系统上的 WAMP 服务器上进行开发。

数据库名为'laravel',有以下两个表:

  1. 迁移
  2. 用户

users 表包含以下列:

  • 身份证
  • 姓名
  • 电子邮件
  • 用户名
  • 密码

我使用命令行生成了存储在app\database\migrations\2014_06_24_221654_test.php 中的迁移。我还在迁移表中创建了迁移和批处理字段。

然后我想将电子邮件播种到该表,因此我在 database\seeds 文件夹中使用了DatabaseSeeder.php

<?php class DatabaseSeeder extends Seeder {

public function run()
{
    $this->call('UserTableSeeder');

    $this->command->info('User table seeded!');
}

}

class UserTableSeeder extends Seeder {

protected $fillable = array('email');

public function run()
{


    User::create(array('email' => 'jishadp369@gmail.com'));
}

}

?>

然后我使用以下命令为数据库播种

php artisan db:seed

但是,我遇到了以下异常:

 [Illuminate\Database\QueryException]

 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field
 list' (SQL: insert into `users` (`email`, `updated_at`, `created_at`) values (ji
 shadp369@gmail.com, 2014-06-25 00:23:48, 2014-06-25 00:23:48))

我该如何解决这个问题?我需要模型吗?

【问题讨论】:

  • $table-&gt;timestamps();$table-&gt;nullableTimestamps(); 在此处描述的表迁移中:laravel.com/docs/schema#adding-columns
  • 我没有得到你的答案
  • Unknown column 'updated_at' 对我来说似乎很清楚。如果您没有在模型上显式设置 protected $timestamps = false;,Laravel 的 Eloquent 会自动为您管理 created_atupdated_at 列。在使用模式构建器为数据库播种时,显然会考虑到它们。在阅读模式构建器文档时,您无疑必须看到 $table-&gt;timestamps() 自动将这两列添加到表中的方法。
  • laravel 中的 REST 功能是什么
  • 这是一个新问题,因此请相应添加。

标签: laravel


【解决方案1】:

那是因为您的用户模型使用时间戳字段。

检查您的用户模型文件。

您可以在构造函数中找到类似 $this-&gt;timestamps = true 的内容。将其更改为false 并重试。如果你没有找到这样的东西,那么在类中添加这个属性:

public $timestamps = false; 

我希望它对你有用。

【讨论】:

猜你喜欢
  • 2020-07-07
  • 2023-03-12
  • 2013-08-21
  • 2014-11-26
  • 1970-01-01
  • 2018-06-05
  • 2014-07-28
  • 1970-01-01
相关资源
最近更新 更多