我已经为启动时需要存储在数据库中的数据设置了相当数量的种子。一切都很简单并且运行良好,直到我需要为DATE字段设置默认日期作为种子为止。
我尝试了以下方法...
DatabaseSeeder.php
class SettingsTableSeeder extends Seeder {
public function run()
{
Setting::create([
'name' => 'Start Date',
'date' => '2000-01-01'
]);
}
}
在我的模型中,有人告诉我添加此功能可以解决此问题,但事实并非如此。
Setting.php
protected $dates = [
'created_at',
'updated_at',
'date'
];
每当我去运行播种机时,都会引发错误:
[InvalidArgumentException]
The separation symbol could not be found
Unexpected data found.
Trailing data
如果我在更改日期前后删除引号。
[InvalidArgumentException]
The separation symbol could not be found
Data missing
知道如何播种DATE数据库字段的默认值吗?
最佳答案
如果date
在$dates
数组中,则插入Carbon实例而不是字符串:
Setting::create([
'name' => 'Start Date',
'date' => Carbon::parse('2000-01-01')
]);
您需要确保在文件顶部可以使用
Carbon
:use Carbon\Carbon;
它是由Laravel/Composer自动加载的。
关于php - 如何在Laravel 5.3中播种日期字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41807853/