【问题标题】:Initialize table in Eloquent ORM with default values使用默认值初始化 Eloquent ORM 中的表
【发布时间】:2022-01-03 13:56:28
【问题描述】:

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

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

【问题讨论】:

标签: php eloquent lumen


【解决方案1】:

你有两个选择:

  1. 创建一个seeder,用值填充数据库。

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

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

【讨论】:

    猜你喜欢
    • 2017-11-22
    • 1970-01-01
    • 2014-12-29
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2020-02-08
    • 2013-01-17
    相关资源
    最近更新 更多