使用默认值初始化Eloquent ORM中的表



我正在Lumen框架中创建一个API,使用Eloquent ORM访问我的数据库。我已经使用工厂和模型在表中生成了随机行。

我想知道的是生成真实的数据,如果我的表为空,则为默认值。我会有一个units表,用来存储可能的单位值(公斤、块、升等(。我已经创建了一个迁移类来创建表,但我想创建这个带有一些默认行的表,所以它不是空的。它们不会是随机的,它们将是用户将访问的真实价值,即使在生产中也是如此。之后可以更改它们,但我希望系统使用这些值进行初始化。

您有两个选项:

  1. 创建一个种子程序,用值填充数据库。

  2. 将值直接添加到迁移中。为此,您只需要创建一个关联的数组,并使用DB::table('table')->insert()。在create()调用之后,将其放入up()函数中的迁移中。我发现这对小的价值观很有帮助。它看起来是这样的:

DB::table('units')->insert([
['type' => 'liter'],
['type' => 'quart'], 
['type' => 'gallon'],
['type' => 'kilogram']
]);