![](/img/trans.png)
[英]Call to undefined method Illuminate\Database\Query\Builder::attach() In laravel 5.3
[英]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.