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

辅助函数未加载 laravel 5 - 调用未定义函数

laravel 调用未定义函数 get()

如何正确设置 PhpStorm? Сan't run PHPUnit on Laravel 8 on Windows 10. 调用未定义函数 Tests\Unit\is_id_term()

在 laravel 中调用未定义的函数 App\Http\Controllers\now()