Laravel 8:调用未定义的函数工厂()
Posted
技术标签:
【中文标题】Laravel 8:调用未定义的函数工厂()【英文标题】:Laravel 8: Call to undefined function factory() [duplicate] 【发布时间】:2021-05-10 11:36:37 【问题描述】:我想在 Factory 中使用一些虚假数据,所以在我的 ArticleFactory
添加了这个:
public function definition()
return [
'title' => $faker->text(50),
'slug' => $faker->slug(),
'body' => $faker->paragraph(rand(5,20)),
];
然后在web.php
我添加了这个:
use App\Models\Article;
Route::get('/', function ()
factory(Article::class,10)->create();
);
但现在我得到了这个错误:
错误调用未定义的函数 factory()
那么这里出了什么问题?我该如何解决?
【问题讨论】:
在 Laravel 8 中,工厂助手不再可用。您的 Thread 模型类应该使用 HasFactory 特征,然后您可以使用您的工厂。但是,如果你更喜欢使用 Laravel 7.x 风格的工厂,你可以使用包laravel/legacy-factories
你可以用 composer 安装它:composer require laravel/legacy-factories
【参考方案1】:
在 Laravel 8 中,工厂助手不再可用。您的 Thread 模型类应该使用 HasFactory 特征,然后您可以使用您的工厂。
改为:
\App\Models\Article::factory()->count(10)->create();
不过,如果你更喜欢使用 Laravel 7.x 风格的工厂,你可以使用 laravel/legacy-factories
包你可以用 composer 安装它:
composer require laravel/legacy-factories
【讨论】:
我之前不知道 laravel/legacy-factories,谢谢以上是关于Laravel 8:调用未定义的函数工厂()的主要内容,如果未能解决你的问题,请参考以下文章
PHP 致命错误:未捕获的错误:使用 Laravel 5.8 和 PHP 7.4 调用未定义函数 Whoops\Exception\xdebug_is_enabled()
调用未定义的方法 App\Models\Car::setCreatedAt() - Laravel - 5.8.16
如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()