使用默认值初始化 Eloquent ORM 中的 table
Initialize table in Eloquent ORM with default values
我正在 Lumen 框架中创建一个 API,使用 Eloquent ORM 来访问我的数据库。我已经使用工厂和模型在我的 table.
中生成随机行
我想知道的是生成真实数据,如果我的 table 为空,则为默认值。我将使用 units
table 来存储可能的单位值(千克、件、升等)。我创建了一个迁移 class 来创建 table,但我想用一些默认行创建这个 table,所以它不会被创建为空。它们不会是随机的,它们将是用户将访问的真实值,即使在生产中也是如此。之后可以更改它们,但我希望系统使用这些值进行初始化。
您有两个选择:
创建一个 seeder 用值填充数据库。
将值直接添加到迁移中。为此,您只需要创建一个关联数组,并使用 DB::table('table')->insert()
。在 create()
调用之后,将其放入 up()
函数的迁移中。我发现这对小值集很有帮助。它看起来像这样:
DB::table('units')->insert([
['type' => 'liter'],
['type' => 'quart'],
['type' => 'gallon'],
['type' => 'kilogram']
]);
我正在 Lumen 框架中创建一个 API,使用 Eloquent ORM 来访问我的数据库。我已经使用工厂和模型在我的 table.
中生成随机行我想知道的是生成真实数据,如果我的 table 为空,则为默认值。我将使用 units
table 来存储可能的单位值(千克、件、升等)。我创建了一个迁移 class 来创建 table,但我想用一些默认行创建这个 table,所以它不会被创建为空。它们不会是随机的,它们将是用户将访问的真实值,即使在生产中也是如此。之后可以更改它们,但我希望系统使用这些值进行初始化。
您有两个选择:
创建一个 seeder 用值填充数据库。
将值直接添加到迁移中。为此,您只需要创建一个关联数组,并使用
DB::table('table')->insert()
。在create()
调用之后,将其放入up()
函数的迁移中。我发现这对小值集很有帮助。它看起来像这样:
DB::table('units')->insert([
['type' => 'liter'],
['type' => 'quart'],
['type' => 'gallon'],
['type' => 'kilogram']
]);