它们现在非常基本.问题是创建的结果表没有在 mysql中反映出我在架构构建器中指定的内容.
例如:
创建下表(忽略表后的图片):
我很确定如果我想允许空值,我应该使用nullableTimestampts()也没有默认值,也没有“on update CURRENT TIMESTAMP”等.
我在这里错过了什么?
aritsan命令非常简单:
PHP artisan make:migration create_table_institutes --create=institutesPHP artisan migrate
我在Ubuntu 14.04,PHP7,Apache MysqL
这是我的播种代码:
DB::table('institutes')->insert([ 'name' => 'Ncbi','base_curl' => 'eutils.ncbi.nlm.nih.gov/entrez/eutils/',]);解决方法 实际上Schema Builder的时间戳方法是从Laravel 5.2开始设计的. nullableTimestamps方法只是一个同义词,它更明确地描述了时间戳的创建方式,它所做的全部内容都是 call the
timestamps
method. 因此,如果您需要不可为空的时间戳字段,则需要手动创建它们.同样,对于使用MysqL当前时间戳自动填充的created_at列,它需要一个默认值.所以这:
$table->timestamps();
应该替换为:
$table->dateTime('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));$table->dateTime('updated_at')->nullable();
对于MysqL 5.6.5之前的版本,其中DATETIME列不能具有默认值,可以使用TIMESTAMP列:
$table->timestamp('created_at')->default(DB::raw('CURRENT_TIMESTAMP'));
虽然,如果您正在使用Eloquent,除了在创建模型条目时始终填充的created_at列之外,其他列应该是可为空的,因为它们将仅在更新或软删除时获取值.
总结以上是内存溢出为你收集整理的php – Laravel 5.2时间戳全部内容,希望文章能够帮你解决php – Laravel 5.2时间戳所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)