我正在尝试使用播种机创建新记录。
这是我在播种文件中写的代码:
RoleUser::create(['role_id'=>$roleId[0],'user_id'=>$user->id]);
PermissionRole::create(['permission_id'=>1,'role_id'=>$roleId[0]]);
这是我得到的错误
[ErrorException] Illegal offset type
RoleUser 模型用于 role_user 表
Schema::create('role_user', function (Blueprint $table) {
$table->integer('role_id')->unsigned();
$table->integer('user_id')->unsigned();
$table->primary(['role_id','user_id']);
});
PermissionRole 模型用于 permission_role 表
Schema::create('permission_role', function (Blueprint $table) {
$table->integer('permission_id')->unsigned();
$table->integer('role_id')->unsigned();
$table->primary(['permission_id','role_id']);
});
RoleUser 模型包含以下代码:
class RoleUser extends Model
{
protected $table='role_user';
protected $primaryKey=['role_id','user_id'];
protected $fillable=['role_id','user_id'];
public $timestamps=false;
}
答案 0 :(得分:1)
终于明白了。 出现问题是因为我在RoleUser模型中使用了以下代码:
protected $primaryKey=['role_id','user_id'];
删除此行,现在工作正常。
答案 1 :(得分:0)
当您尝试使用对象或数组作为索引键来访问数组索引时,会发生非法的偏移类型错误。
错误应该是您获取$roleId
和$user
的方式。
您必须确保$roleId
和$user
包含您想要的内容以及您正确访问它。