【发布时间】: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
环境:Laravel 框架 Lumen (8.2.2)(Laravel 组件 ^8.0)
当我跑步时
$blogs = factory('App\Blog', 2)->create();
在BlogsControllerTest.php,它显示
调用未定义的函数 factory()
【问题讨论】:
标签: laravel testing factory lumen
回答我自己的问题以防它对某人有所帮助。
它也可以这样工作。
$blogs = BlogFactory::new()->count(2)->create();
参考:laravel.com/docs/8.x/database-testing#connecting-factories-and-models
【讨论】:
正如 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; 有效。非常感谢。