【问题标题】:How to call a factory from a artisan command - Laravel如何通过工匠命令调用工厂 - Laravel
【发布时间】:2016-12-08 12:47:37
【问题描述】:

我想从自定义工匠命令中调用工厂函数。但是当我运行那个命令时,它并没有运行那个工厂函数,也没有给出任何错误。

这是自定义工匠命令:

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();
    }
}

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

【问题讨论】:

  • 有什么错误吗?
  • 不,不是……

标签: laravel


【解决方案1】:

对不起,这是我的错。我忘了截断表格,但在我的脑海中我认为它就在那里。

我们可以通过工匠命令调用工厂。这并没有错。

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

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 2014-08-30
    • 2016-03-15
    • 2020-02-05
    • 2016-04-07
    • 2016-07-03
    • 2014-09-07
    • 2013-09-25
    • 2015-09-24
    相关资源
    最近更新 更多