【发布时间】:2021-03-30 04:38:16
【问题描述】:
我是 Laravel 的新手,当我尝试使用工厂在数据库中的表中生成一些信息时出现错误。
在 null "处调用成员函数 count() 供应商/laravel/framework/src/Illuminate/Database/Eloquent/Factories/HasFactory.php:17。
也许有人有同样的问题?如果有人可以提供帮助,我将不胜感激。以下是某些元素的代码:
播种机
class UsersTableSeeder extends Seeder
{
public function run()
{
Users::factory()->count(30)->create();
}
}
工厂
class UploadInfoFactory extends Factory
{
protected $model = Users::class;
public function definition()
{
return [
'Name' => $this->faker->name,
'Birthday' => $this->faker->date('d-m-Y'),
'Phone number' => $this->faker->phoneNumber,
'Phone balance' => $this->faker->numberBetween(-50,150),
];
}
}
数据库播种器
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call(UsersTableSeeder::class);
}
}
迁移
class CreateInfoUsers extends Migration
{
public function up()
{
Schema::create('info_users', function (Blueprint $table) {
$table->integerIncrements('id');
$table->string('name',100);
$table->date('Birthday');
$table->string('Phone number',100);
$table->string('Phone balance',100);
});
}
}
我们输入php artisan db时在bash中弹出的错误码:seed:
Call to a member function count() on null at vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/HasFactory.php:17
13▕ public static function factory(...$parameters): Factory {
14▕ $factory = static::newFactory() ?: Factory::factoryForModel(get_called_class());
15▕
16▕ return $factory
➜ 17▕ ->count(is_numeric($parameters[0] ?? null) ? $parameters[0] : null)
18▕ ->state(is_array($parameters[0] ?? null) ? $parameters[0] : ($parameters[1] ?? []));
19▕ }
20▕
21▕ /**
【问题讨论】:
-
您是否设置了
Users模型的配置以知道使用此UploadInfoFactory?至于这个自动使用工厂,工厂必须有一个特定的名称