我想从自定义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();
}
}
如果需要更多信息,请告诉我。
答案 0 :(得分:2)
对不起,这是我的坏事。我忘了截断桌子,但在我的脑海里,我想到了它。
我们可以从工匠指挥部召集工厂。这没有错。
public function handle()
{
Tag::truncate();
factory(Tag::class, 5)->create();
}