我知道如何在 Laravel 4 上设置包迁移(使用 --bench="vendor/package" / --package="vendor/package")。
但我似乎无法弄清楚如何为这些迁移设置种子?
--澄清一下-我知道如何使用播种机,我需要知道的是如何为独立包设置种子文件?你可以给一个包单独的迁移......
我知道如何在 Laravel 4 上设置包迁移(使用 --bench="vendor/package" / --package="vendor/package")。
但我似乎无法弄清楚如何为这些迁移设置种子?
--澄清一下-我知道如何使用播种机,我需要知道的是如何为独立包设置种子文件?你可以给一个包单独的迁移......
您可以像在 app 文件夹中一样使用 Seeder 类。
举个例子 :
<?php
use Illuminate\Database\Seeder;
use Page;
class MySeeder extends Seeder {
public function run()
{
Page::create(array('title' => 'Foo-Bar !'));
}
}
并指定“--class”参数:
$ php artisan db:seed --class="MySeeder"
注意让作曲家加载你的类:)
只要Composer成功加载了所有类, Laravel Database Seeder 就会自动识别传递给它的任何类名。执行以下操作:
seeds
文件夹{vendor}/{package}/src
{Package}Seeder.php
这样就可以了。seeds
文件夹添加到您的包composer.json
自动加载类映射数组。composer update
从您的包根文件夹运行。php artisan db:seed --class={Package}Seeder
(用新的类名替换类名。)就是这样。您现在可以为您的包运行种子。
米
为确保您的种子文件不冲突,您可以将命名空间添加到种子文件
namespace YourPackage\Name;
class DatabaseSeeder extends Seeder {
然后使用 FQCN 运行 artisan 命令
$ php artisan db:seed --class="YourPackage\Name\DatabaseSeeder"
或者如果您没有使用引号
$ php artisan db:seed --class=YourPackage\\Name\\DatabaseSeeder