我刚刚开始使用Laravel框架及其命令提示符。但是,我在迁移和播种功能方面遇到了问题。
我正在Windows 7 64位操作系统上的WAMP服务器上进行开发。
数据库名称是' laravel',包含以下两个表:
users表包含以下列:
我使用命令行生成存储在app\database\migrations\2014_06_24_221654_test.php
中的迁移。我还在迁移表中创建了迁移和批处理字段。
然后我想将电子邮件播种到该表,因此我在数据库\ 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))
我该如何解决这个问题?我需要一个型号吗?
答案 0 :(得分:10)
这是因为您的用户模型使用时间戳字段。
检查您的用户模型文件。
您可以在构造函数中找到类似$this->timestamps = true
的内容。将其更改为false
,然后重试。如果您没有找到类似的内容,请将此属性添加到课程中:
public $timestamps = false;
我希望它适合你。