小编Aar*_*ler的帖子

Laravel 5.3调用未定义的方法Illuminate\Database\Eloquent\Factory :: state()

我试图定义一个用户模式测试的几个不同的版本,使用Laravels ModelFactory作为记录在这里

$factory->define(App\User::class, function(\Faker\Generator $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'remember_token' => str_random(10),
        'phone' => $faker->phoneNumber,
    ];
});

$factory->state(App\User::class, 'admin', function (Faker\Generator $faker) {
    return [
        'groups' => function(App\User $u) {
            return App\Models\Group::where('level', '<=', 5)->get()->toArray();
        }
    ];
});
Run Code Online (Sandbox Code Playgroud)

然后我创建一个User模型:

$user = factory(User::class)->states('admin')->make();
Run Code Online (Sandbox Code Playgroud)

但phpunit似乎没有抱怨就退出了测试.在PHP日志中,我看到:

Call to undefined method Illuminate\Database\Eloquent\Factory::state()
Run Code Online (Sandbox Code Playgroud)

Laravel文档中没有关于state()方法的文档,我已经搜索和实验了几个小时而没有任何进展来展示它.

作为旁注:该groups属性指的是许多关系.但是,无论我创建哪种模型,甚至是简单模型,都会抛出此异常.

php laravel-5

5
推荐指数
1
解决办法
1031
查看次数

标签 统计

laravel-5 ×1

php ×1