【问题标题】:Call to undefined function factory()调用未定义的函数 factory()
【发布时间】:2021-05-08 17:12:39
【问题描述】:

环境:Laravel 框架 Lumen (8.2.2)(Laravel 组件 ^8.0)

当我跑步时

$blogs = factory('App\Blog', 2)->create();

BlogsControllerTest.php,它显示

调用未定义的函数 factory()

【问题讨论】:

    标签: laravel testing factory lumen


    【解决方案1】:

    回答我自己的问题以防它对某人有所帮助。

    它也可以这样工作。

    $blogs = BlogFactory::new()->count(2)->create();

    参考:laravel.com/docs/8.x/database-testing#connecting-factories-and-models

    【讨论】:

      【解决方案2】:

      正如 Laravel 的 upgrade guide 所说,模型工厂已更改。 新的方式是这样的App\Models\Blog::factory()->count(3)->create();

      要使用旧版本的referrer 到documentation

      但是,为了简化升级过程,我们创建了一个新的 laravel/legacy-factories 包,以继续使用您现有的工厂和 Laravel 8.x

      要安装它,请使用 composer composer require laravel/legacy-factories

      【讨论】:

      • 感谢您的回答。当我运行App\Models\Blog::factory()->count(3)->create(); 时显示:BadMethodCallException: Call to undefined method App\Models\Blog::factory()
      • 您需要在模型中使用use HasFactory;。所以在你的Blog模型中,先从这里导入use Illuminate\Database\Eloquent\Factories\HasFactory;然后在模型use HasFactory;
      • use HasFactory; 有效。非常感谢。
      猜你喜欢
      • 2020-12-28
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多