Database Laravel迁移,列类型年份

Database Laravel迁移,列类型年份,database,laravel,migration,Database,Laravel,Migration,我想要一个列来存储年份。现在我正在使用 $table->unsignedInteger('year')->default('1900'); 但是,这允许像5和19这样的数字。我想强制使用四位数字,比如1992 建议?在laravel文档中,您可以在迁移文件中执行此操作 $table->year('year'); 您可以使用: $table->integer('year', 4); 记住使用:如果你想的话 在单个命令中回滚和迁移 php artisan migr

我想要一个列来存储年份。现在我正在使用

$table->unsignedInteger('year')->default('1900');
但是,这允许像
5
19
这样的数字。我想强制使用四位数字,比如
1992


建议?

在laravel文档中,您可以在迁移文件中执行此操作

$table->year('year');   
您可以使用:

$table->integer('year', 4);
记住使用:如果你想的话 在单个命令中回滚和迁移

php artisan migrate:refresh
或者删除所有表并迁移

php artisan migrate:fresh

最简单的解决方案是将字段保存为日期。 使用碳

然后将日期和月份值设置为01,得到全年值,
这样,您就可以使用$date->year

获得完整的年份。好的,我将其设置为
year
类型,但问题仍然存在。它仍然收到
5
19
您是否刷新了迁移?尝试将默认值设置为2000并检查,在您说它不起作用后我尝试了,但它确实将2000设置为默认值,仍然相同。列类型
year
本身并不错误,因为year
5
19
是有效的年份。我想我想要的是将最小年份设置为
1000
,这样它就不会收到比我尝试的更低的值,迁移时给了我一个多主键错误:\n所以,尝试使用php artisan migrate:Fresh我做到了,仍然一样。我想我会把它做成一个
year
类型,并验证代码中的输入