phirational / laravel-conditional-seeder
此包已被弃用且不再维护。未建议替代包。
此包最新版本(1.0.2)没有提供许可信息。
Laravel trait 提供条件数据库播种方法。
1.0.2
2014-07-25 12:14 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~4.1
This package is not auto-updated.
Last update: 2018-03-29 11:36:35 UTC
README
为 Laravel 提供条件数据库播种方法的 PHP trait。
安装
将 phirational/laravel-conditional-seeder
添加到 composer.json
的 require 部分。
{ "require": { "phirational/laravel-conditional-seeder": "~1.0" } }
然后运行 composer install
或 composer update
。
下一步
- 在您的
DatabaseSeeder
类声明之前添加use Phirational\LaravelConditionalSeeder\ConditionalSeeder;
。 - 在
DatabaseSeeder
类头部之后立即添加use ConditionalSeeder;
trait。
<?php use Phirational\LaravelConditionalSeeder\ConditionalSeeder; class DatabaseSeeder extends Seeder { use ConditionalSeeder; public function run() { ... } }
方法
### isInLastMigrations 确定迁移(或迁移)是否在最后一个迁移批次中
/** * @param string|array $migrations Migration name or array of migrations * @param bool $partialMatch Allow if just one matching migration is enough * * @return bool */ function isInLastMigrations($migrations, $partialMatch = false)
### isInRanMigrations 确定迁移(或迁移)是否在已运行的迁移之间
/** * @param string|array $migrations Migration name or array of migrations * @param bool $partialMatch Allow if just one matching migration is enough * * @return bool */ function isInRanMigrations($migrations, $partialMatch = false)
用法
在将 ConditionalSeeder
trait 扩展到您的 DatabaseSeeder
之后,您可以使用 isInLastMigrations
和 isInRanMigrations
方法检查是否运行了某些迁移。
####简单检查
public function run() { // Call ExampleTableSeeder when was '2014_05_15_001618_foo' in last migration batch if ($this->isInLastMigrations('2014_05_15_001618_foo')) { $this->call('ExampleTableSeeder'); } // Call ExampleTableSeeder whenever was '2014_05_15_002342_bar' ran if ($this->isInRanMigrations('2014_05_15_002342_bar')) { $this->call('ExampleTableSeeder'); } }
####使用可选部分匹配检查多个迁移
public function run() { // Call ExampleTableSeeder when was '2014_05_15_001618_foo' AND '2014_05_15_002342_bar' in last migration batch if ($this->isInLastMigrations(array('2014_05_15_001618_foo', '2014_05_15_002342_bar'), false)) { $this->call('ExampleTableSeeder'); } // Call ExampleTableSeeder when was '2014_05_15_001618_foo' OR '2014_05_15_002342_bar' in last migration batch if ($this->isInLastMigrations(array('2014_05_15_001618_foo', '2014_05_15_002342_bar'), true)) { $this->call('ExampleTableSeeder'); } }