我知道如何在Laravel 4上设置Package Migrations(使用--bench =“vendor / package”/ --package =“vendor / package”)。
但我似乎无法弄清楚如何为这些迁移设置种子?
- 澄清 - 我知道如何使用播种机,我需要知道的是如何为独立包设置种子文件?您可以为包提供单独的迁移...
答案 0 :(得分:6)
您可以像在app文件夹中一样使用Seeder类。
例如:
<?php
use Illuminate\Database\Seeder;
use Page;
class MySeeder extends Seeder {
public function run()
{
Page::create(array('title' => 'Foo-Bar !'));
}
}
并在:
中指定“--class”arg$ php artisan db:seed --class="MySeeder"
注意让作曲家加载你的课程:)
答案 1 :(得分:3)
Laravel Database Seeder 就会自动识别传递给它的任何类名。请执行以下操作:
seeds
{vendor}/{package}/src
文件夹
{Package}Seeder.php
会发生冲突。seeds
文件夹添加到您的包composer.json
自动加载中
classmap array。composer update
。php artisan db:seed --class={Package}Seeder
(用新的类名替换类名。)就是这样。您现在可以为包裹运行种子。
中号
答案 2 :(得分:2)
要确保种子文件不冲突,可以将命名空间添加到种子文件
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