簡體   English   中英

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

[英]Laravel 5.3 Call to undefined method 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();
        }
    ];
});

然后我創建一個User模型:

$user = factory(User::class)->states('admin')->make();

但phpunit似乎沒有抱怨就退出了測試。 在PHP日志中,我看到:

Call to undefined method Illuminate\Database\Eloquent\Factory::state()

Laravel文檔中沒有關於state()方法的文檔,我已經搜索和實驗了幾個小時而沒有任何進展來展示它。

作為旁注: groups屬性指的是Many關系。 但是,無論我創建哪種模型,甚至是簡單模型,都會拋出此異常。

在Illuminate \\ Database \\ Eloquent \\ Factory和FactoryBuilder類中挖掘之后,我發現與github上的最新Laravel分支相比,state()和states()方法都丟失了。 在運行composer update之后,它將我更新為Laravel Framework v5.3.18,現在ModelFactory狀態按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM