【发布时间】:2020-01-30 04:13:21
【问题描述】:
我想为hero 表播种,但出现以下错误。
参数 1 传递给 Illuminate\Database\Query\Builder::insertGetId() 必须是数组类型,给定对象,在其中调用
E:\xampp\htdocs\cyberpunk\vendor\laravel\framework\ src\Illuminate\Database\Eloquent\Builder.php 在第 1350 行。
异常跟踪: Illuminate\Database\Query\Builder::insertGetId(Object(App\Hero), “ID”) ...供应商\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 之间存在一对一的关系。我想通过user 模型创建一个新的hero。这种方式也会导致同样的错误。
$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);
}
}
【问题讨论】:
-
你能给我们展示一个用户和英雄模型类吗?
-
当然,我已经编辑了帖子。
-
你能发布整个 Seeder 文件吗
-
尝试将 'user_id'(和所有其他字段)添加到 Hero 模型中的可填充属性中:protected $fillable =[ 'user_id', 'level', ...];
标签: php laravel eloquent laravel-6