Я хочу заполнить таблицу hero
, но получаю следующую ошибку.
Аргумент 1, передаваемый в Illuminate \ Database \ Query \ Builder :: insertGetId (), должен иметь типмассив, заданный объект, вызывается в
E: \ xampp \ htdocs \ cyberpunk \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Builder.php в строке 1350.
Исключениеtrace: Illuminate \ Database \ Query \ Builder :: insertGetId (Object (App \ Hero), "id") ... vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Builder.php: 1350
Сеялка
User::find(1)->hero()->create([
'name' => $faker->userName,
'level' => $faker->numberBetween(1, 99),
'strength' => $faker->numberBetween(1, 20),
'vitality' => $faker->numberBetween(1, 20),
'stamina' => $faker->numberBetween(1, 20),
'agility' => $faker->numberBetween(1, 20),
'perception' => $faker->numberBetween(1, 20),
'luck' => $faker->numberBetween(1, 20),
]);
У меня отношение один к одному между User
и Hero
. Я хочу создать новую hero
с помощью модели user
. Этот способ также вызывает ту же ошибку.
$hero = new Hero;
$hero->user_id = 1;
...
$hero->save();
Пользователь
class User extends Authenticatable implements JWTSubject
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password'
];
protected $hidden = [
'password', 'remember_token',
];
public $appends = ['hashid'];
public function hero()
{
return $this->hasOne(Hero::class);
}
}
Модель героя
class Hero extends Model
{
protected $fillable = ['level'];
public function user()
{
return $this->belongsTo(User::class);
}
}