{closure}() 必须是 laravel 工厂种子上 Faker\Generator\Generator 的一个实例
{closure}() must be an instance of Faker\Generator\Generator on laravel factory seed
当我使用
php artisan db:seed
我得到了错误?
在 UserFactory.php 第 27 行:
Type error: Argument 1 passed to
Illuminate\Database\Eloquent\Factory::{closure}() must be an instance
of Faker\Generator\Generator, instance of Faker\Generator given
Userfactory.php
使用Faker\Generator作为Faker;
(这是第 27 行)
$factory->define(App\Models\Admin::class, function (Faker\Generator $faker) {
static $password;
return [
'name' => $faker->name,
'email' => $faker->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
];
});
AdminsTableSeeder.php
public function run()
{
factory('App\Models\Admin',3)->create([
'password' => bcrypt('123456')
]);
}
DatabaseSeeder.php
public function run()
{
// $this->call(UsersTableSeeder::class);
$this->call(AdminsTableSeeder::class);
}
我不知道怎么回事。
我解决了
使用Faker\Generator作为Faker;
(this is line 27)
$factory->define(App\Models\Admin::class, function (Faker $faker)
这意味着不要在函数中使用 function(Faker\Generator $faker)
,而是使用 function (Faker $faker)
这帮我解决了。
当我使用 php artisan db:seed 我得到了错误? 在 UserFactory.php 第 27 行:
Type error: Argument 1 passed to
Illuminate\Database\Eloquent\Factory::{closure}() must be an instance
of Faker\Generator\Generator, instance of Faker\Generator given
Userfactory.php
使用Faker\Generator作为Faker;
(这是第 27 行)
$factory->define(App\Models\Admin::class, function (Faker\Generator $faker) {
static $password;
return [
'name' => $faker->name,
'email' => $faker->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
];
});
AdminsTableSeeder.php
public function run()
{
factory('App\Models\Admin',3)->create([
'password' => bcrypt('123456')
]);
}
DatabaseSeeder.php
public function run()
{
// $this->call(UsersTableSeeder::class);
$this->call(AdminsTableSeeder::class);
}
我不知道怎么回事。
我解决了 使用Faker\Generator作为Faker;
(this is line 27)
$factory->define(App\Models\Admin::class, function (Faker $faker)
这意味着不要在函数中使用 function(Faker\Generator $faker)
,而是使用 function (Faker $faker)
这帮我解决了。