rnr / laravel-alice
此包的最新版本(0.9.1)没有可用的许可信息。
laravel 的 alice 固件生成器包装器
0.9.1
2017-11-18 11:00 UTC
Requires
- laravel/framework: ~5.3
- nelmio/alice: ~3.1
Requires (Dev)
- orchestra/database: ~3.3.0@dev
- orchestra/testbench: ~3.3
- phpunit/phpunit: ~5.5
This package is not auto-updated.
Last update: 2024-09-14 20:04:03 UTC
README
一个用于使用 nelmio/alice 管理固件的 Laravel 包。
安装
此包可以通过 Composer 安装,作为 rnr/laravel-alice。
composer install --dev rnr/laravel-alice
基本用法
创建 yml
固件文件,如 nelmio/alice 所描述
Nelmio\Entity\User: user{1..10}: username: '<username()>' fullname: '<firstName()> <lastName()>' birthDate: '<date()>' email: '<email()>' favoriteNumber: '50%? <numberBetween(1, 200)>' Nelmio\Entity\Group: group1: name: Admins owner: '@user1' members: '<numberBetween(1, 10)>x @user*' created: '<dateTimeBetween("-200 days", "now")>' updated: '<dateTimeBetween($created, "now")>'
类 FixturelLoader
有一个重要方法 load 用于加载模型。该方法接收一个或多个包含要加载数据的文件。您可以使用以下代码将此固件加载到数据库中
<?php namespace Rnr\Tests\Alice; use Orchestra\Testbench\TestCase as ParentTestCase; use Rnr\Alice\FixturesLoader; use Nelmio\Entity\User; use Nelmio\Entity\Group; class TestCase extends ParentTestCase { /** @var FixturesLoader */ protected $fixturesLoader; protected function setUp() { parent::setUp(); $this->fixturesLoader = $this->app->make(FixturesLoader::class); } public function testLoadingFixtures() { $objects = $this->fixturesLoader->load('fixture.yml'); $users = User::all(); $this->assertEquals(array_map($objects, function ($model) { return $model->getKey(); }), $users->modelKeys()); } }
它为以下模型加载数据
<?php namespace Nelmio\Entity; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $table = 'users'; } class Group extends Model { protected $table = 'groups'; public function owner() { return $this->belnogsTo(User::class); } }
限制
您可以使用 id 来指定关系中的相关模型,但这些模型应该已经在数据库中创建。
从数据库提取固件
如果您将 GenerateFixtureCommand 添加到您的控制台内核中,您可以从现有数据库中导出数据到 yml。此类向 artisan 添加了新命令 db:generate-fixture
。此命令从数据库中提取固件。命令接受以特定格式表示的模型及其关系的数组
php artisan db:generate-fixture \
'Nelmio\Entity\User(relations:relation1,realation2.subrelation)=1,2,3-5,17,20-25' \
'Nelmio\Entity\Group(relations:hasOne)=*' > /path/to/fixture.yml