【发布时间】:2014-08-14 16:17:03
【问题描述】:
我刚刚开始使用 Laravel 框架及其命令提示符。但是,我在迁移和播种功能方面遇到了问题。
我正在 Windows 7 64 位操作系统上的 WAMP 服务器上进行开发。
数据库名为'laravel',有以下两个表:
- 迁移
- 用户
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->timestamps();或$table->nullableTimestamps();在此处描述的表迁移中:laravel.com/docs/schema#adding-columns -
我没有得到你的答案
-
Unknown column 'updated_at'对我来说似乎很清楚。如果您没有在模型上显式设置protected $timestamps = false;,Laravel 的 Eloquent 会自动为您管理created_at和updated_at列。在使用模式构建器为数据库播种时,显然会考虑到它们。在阅读模式构建器文档时,您无疑必须看到$table->timestamps()自动将这两列添加到表中的方法。 -
laravel 中的 REST 功能是什么
-
这是一个新问题,因此请相应添加。
标签: laravel