如何从工匠指挥部召集工厂 - Laravel

时间:2016-12-07 04:47:37

标签: laravel

我想从自定义artisan命令调用工厂函数。但是当我运行该命令时,它不会运行该工厂函数,也不会产生任何错误。

这是自定义工匠命令:

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Tag;

class CreateTags extends Command
{
    protected $signature = 'blog:create-tags';

    protected $description = 'To generate new random tags for blogs';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        factory(Tag::class, 5)->create();
    }
}

数据库/工厂/ Modelfactory.php:

$factory->define(App\Tag::class, function (Faker\Generator $faker) {
    return [
        'name' => $faker->word,
    ];
});

从CLI激发该命令:

php artisan blog:create-tags

但是,如果我使用db:seed命令运行同一个工厂,它的工作正常。像

工厂/种子/ TagsSeeder.php:

use Illuminate\Database\Seeder;
use App\Tag;
class TagsSeeder extends Seeder
{
    public function run()
    {
        Tag::truncate();
        factory(Tag::class, 5)->create();
    }
}

如果需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

对不起,这是我的坏事。我忘了截断桌子,但在我的脑海里,我想到了它。

我们可以从工匠指挥部召集工厂。这没有错。

    public function handle()
    {
        Tag::truncate();
        factory(Tag::class, 5)->create();
    }