我可以有一个没有数据库 table 的 Laravel 模型吗?

Can I have a Laravel Model without a database table?

我想要一个具有 Laravel 模型的所有特性和功能的 Laravel 模型,但是模型的数据是完全静态的,永远不会改变。我可以为它创建一个数据库 table,但这留下了有人直接修改 table 的可能性。

例如:

    //  Model Data for Log Levels
    name      | icon                | color
    -------------------------------------------
    Emergency | fas fa-ambulance    | red
    Alert     | fas fa-bullhorn     | yellow
    Critical  | fas fa-heartbeast   | orange
    ....

这将是数据,存储在模型文件中,就好像它是一个数据库 table,但永远不能更改。这可能吗?

我认为您可以使用一个简单的模型,无需创建用于注入数据的表单,并使用播种器在第一次(当您 运行 迁移时)包含您的数据。

您可以使用 寿司

Eloquent 缺少“数组”驱动程序。

有时您想使用 Eloquent,但又不想处理数据库。

class State extends Model
{
    use \Sushi\Sushi;

    protected $rows = [
        [
            'name' => 'Emergency',
            'icon' => 'fas fa-ambulance',
            'color' => 'red'
        ],
        [
            'name' => 'Alert',
            'icon' => 'fas fa-bullhorn',
            'color' => 'yellow'
        ],
        [
            'name' => 'Critical',
            'icon' => 'fas fa-heartbeast',
            'color' => 'orange'
        ],
    ];
}

https://github.com/calebporzio/sushi