mayconbordin/l5-fixtures

Laravel 5 的 fixtures 包

v1.0 2016-10-07 14:13 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:42:56 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Laravel 5 的 fixtures 包,支持 JSON、CSV、YAML 和 PHP 文件。

如果您正在使用可以轻松生成的假数据来填充数据库,请考虑使用 模型工厂

但是,如果您需要加载无法生成的数据,那么这是您最好的选择。

安装

为了安装 Laravel 5 Fixtures,只需在您的 composer.json 中添加

"mayconbordin/l5-fixtures": "dev-master"

然后运行 composer installcomposer update

然后在您的 config/app.php 中添加

'Mayconbordin\L5Fixtures\FixturesServiceProvider'

providers 数组中,并

'Fixtures' => 'Mayconbordin\L5Fixtures\FixturesFacade'

aliases 数组中。

如果您正在使用 Laravel 5.5,则包将自动发现,无需编辑 config/app.php

配置

要发布此包的配置,请执行 php artisan vendor:publish,将在您的 app/config 目录中创建一个 fixtures.php 文件。

使用方法

默认情况下,fixtures 目录是 /fixtures,在其中您应放置填充数据库的数据文件。文件的名称应与数据库表的名称完全相同(例如:'table_one.json')。请查看 /tests_data 目录中的两个示例。

要应用所有 fixtures 到数据库,请运行

Fixtures::up();

如果您只想应用某些 fixtures,可以传递一个包含您想要应用的 fixtures 名称的数组

Fixtures::up('table_one', 'table_two');

要删除数据库中的记录,请运行

Fixtures::down();

down 方法也可以接收一个包含要删除的 fixtures 名称的数组。目前,数据库表中所有记录都将被删除。

如果您尚未发布配置文件或要从其他位置加载 fixtures,则在应用 fixtures 之前,您只需要执行以下代码

Fixtures::setUp('/path/to/fixtures');

数据格式

fixtures 文件将被解析,以创建一个记录数组,这些记录本身是关联数组。然后,使用查询构建器的 insert 方法将结果数组插入到数据库中。

库不处理关系,但您可以通过它们的 ID 引用其他记录,即使它们尚未插入,因为库在将 fixtures 插入数据库之前禁用了外键检查。

JSON

[
  {
    "name": "Owen Sound",
    "region": "ON",
    "country": "Sierra Leone"
  }
]

CSV

分隔符将自动检测。

name;region;country
Owen Sound;ON;Sierra Leone

YAML

- name: Owen Sound
  region: ON
  country: Sierra Leone

PHP

<?php

return [
    [
        'name' => 'Owen Sound',
        'region' => 'ON',
        'country' => 'Sierra Leone'
    ]
];