【发布时间】:2016-03-19 07:48:41
【问题描述】:
我正在通过laracast fundamentals series 学习 laravel 5.1,在第 7 集中讨论迁移,我构建了一个这样的迁移表:
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->timestamps();
$table->timestamp('published_at');
});
}
正如它在第 10 集中所说,当我通过没有 published_at 时间戳字段的表单将文章添加到数据库时,这应该不起作用,并且应该通过 Not Null constraint failed 的异常但是令人难以置信的文章添加到表中。
当我查看 phpmyadmin 结构中 published_at 列的表时,它没有选中 null 复选框,所以它不应该接受 null 吗? 这是真的吗?
但后来我注意到迁移将published_at 列的默认值设置为0000-00-00 00:00:00。 为什么?!和这会覆盖NULL条件吗?
然后我尝试将默认值设置为none,但仍然没有检查空值。我再次尝试添加没有published_at 字段的文章但又在表中添加了一个新行,published_at 值设置为0000-00-00 00:00:00。
有什么解释吗?
我正在使用 wampserver 和 mysql v5.6.17 ,php v5.5.12
【问题讨论】:
标签: php mysql laravel laravel-5 laravel-5.1