OTA*_*TAR 1 php laravel laravel-5
我这样创建迁移: php artisan make:migration create_categories_table --create categories
然后我添加一些列,例如:
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 150);
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
然后: php artisan migrate
这将创建table categories,然后将其插入类别:
insert into categories
(name)
values
('sport')
Run Code Online (Sandbox Code Playgroud)
这将插入行,但created_at列null,而不是当前的时间戳。
我怎么了
我做了(mysql命令)show create table categories::
CREATE TABLE `categories` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) )
ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_unicode_ci
Run Code Online (Sandbox Code Playgroud)
这清楚地表明的默认值为created_atNULL。为什么?
而不是使用
$table->timestamps();
Run Code Online (Sandbox Code Playgroud)
使用,
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
Run Code Online (Sandbox Code Playgroud)
它将在列设置创建的默认值,并在列更新。然后,它将存储当前时间戳。
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |