mayconbordin / l5-fixtures
Laravel 5 的 fixtures 包
Requires
- php: >=5.5.0
- illuminate/console: 5.x
- illuminate/database: 5.x
- illuminate/support: 5.x
- league/csv: ~8.0.0
- league/flysystem: ~1.0.16
- symfony/yaml: ~2.8.2
Requires (Dev)
- mockery/mockery: ~0.9.4
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 17:42:56 UTC
README
Laravel 5 的 fixtures 包,支持 JSON、CSV、YAML 和 PHP 文件。
如果您正在使用可以轻松生成的假数据来填充数据库,请考虑使用 模型工厂。
但是,如果您需要加载无法生成的数据,那么这是您最好的选择。
安装
为了安装 Laravel 5 Fixtures,只需在您的 composer.json 中添加
"mayconbordin/l5-fixtures": "dev-master"
然后运行 composer install
或 composer 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' ] ];