在Laravel 4播种包装表

时间:2013-02-08 16:08:20

标签: php model-view-controller laravel laravel-4

我知道如何在Laravel 4上设置Package Migrations(使用--bench =“vendor / package”/ --package =“vendor / package”)。

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

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

3 个答案:

答案 0 :(得分:6)

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

Database Seeding in Laravel 4

例如:

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

只要 Composer 成功加载了所有类,

Laravel Database Seeder 就会自动识别传递给它的任何类名。请执行以下操作:

  1. seeds
  2. 下创建{vendor}/{package}/src文件夹
  3. 创建一个播种器类,在其前面加上您的包名称以避免 例如,{Package}Seeder.php会发生冲突。
  4. 将新的seeds文件夹添加到您的包composer.json自动加载中 classmap array。
  5. 在终端中,从包根文件夹运行composer update
  6. 在终端中,运行php artisan db:seed --class={Package}Seeder (用新的类名替换类名。)
  7. 就是这样。您现在可以为包裹运行种子。

    中号

答案 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