3

我知道如何在 Laravel 4 上设置包迁移(使用 --bench="vendor/package" / --package="vendor/package")。

但我似乎无法弄清楚如何为这些迁移设置种子?

--澄清一下-我知道如何使用播种机,我需要知道的是如何为独立包设置种子文件?你可以给一个包单独的迁移......

4

3 回答 3

6

您可以像在 app 文件夹中一样使用 Seeder 类。

Laravel 4 中的数据库播种

举个例子 :

<?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"

注意让作曲家加载你的类:)

于 2013-02-17T18:58:09.517 回答
3

只要Composer成功加载了所有类, Laravel Database Seeder 就会自动识别传递给它的任何类名。执行以下操作:

  1. 在下创建一个seeds文件夹{vendor}/{package}/src
  2. 例如,创建一个播种器类,在它前面加上你的包名以避免冲突,{Package}Seeder.php这样就可以了。
  3. 将新seeds文件夹添加到您的包composer.json自动加载类映射数组。
  4. 在终端中,composer update从您的包根文件夹运行。
  5. 在终端中,运行php artisan db:seed --class={Package}Seeder (用新的类名替换类名。)

就是这样。您现在可以为您的包运行种子。

于 2014-12-05T20:52:58.567 回答
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
于 2015-01-17T16:30:34.013 回答