PHP 工匠从 /database/seeds 中的新文件夹运行播种机

Posted

技术标签:

【中文标题】PHP 工匠从 /database/seeds 中的新文件夹运行播种机【英文标题】:PHP artisan run seeder from new folder in /database/seeds 【发布时间】:2020-01-21 13:26:51 【问题描述】:

我在 (/database/seeds/) 中创建了一个新文件夹,所以现在我在这样的目录 (/database/seeds/DatabaseTester/Users.php) 中有一个播种机,我想在我的测试中运行它。如何在测试中使用代码运行播种机?

php artisan db:seed --class= 不适合我,也许我做错了,我很困惑。

更新:

【问题讨论】:

更正了糟糕的图片网址格式。 【参考方案1】:

如果你能提供你得到的错误可能会有所帮助,但看起来你正在使用 :: 而不是单个 :

试试

php artisan db:seed --class=Users

【讨论】:

Class Users does not exist【参考方案2】:

我看到你更新了你的问题。因此,考虑到这一点,我建议您运行composer dump-autoload,然后再试一次。

但是,我不得不问你。为什么你在测试中使用种子,而不是使用虚假数据对工厂进行建模?

【讨论】:

对不起,这只是问题,我一直在尝试db::seed @DmitriyDembitskyi 我已经更新了我的答案,请检查它现在是否对你有用。 我用播种机多次使用用户。我正在用黄昏创建自动化测试,所以这就是原因。【参考方案3】:

这就是它的工作原理:

添加 namespace Seeder\DatabaseTester; 到您的播种机

添加 use Illuminate\Support\Facades\Artisan; 在测试的顶部

用来运行 Artisan::call('db:seed', ['--class' => 'Seeder\DatabaseTester\Users']);

这个适用于任何文件夹,只是不要忘记在播种器路径之前添加Seeder\

【讨论】:

以上是关于PHP 工匠从 /database/seeds 中的新文件夹运行播种机的主要内容,如果未能解决你的问题,请参考以下文章

laravel php工匠错误

Composer autoload 自动加载

新鲜的 Laravel 安装删除了工匠服务上的 server.php

Laravel - 从路由调用工匠队列命令 - 邮递员超时

Laravel 工匠忽略了我的 app/config/database.php

laravel 4中的工匠命令无法加载php_mcrypt