提问者:小点点

关系Laravel多对多不工作


我为管理和学校桌子建立了许多对许多的关系。"SQLSTATE[42S22]:找不到列: 1054字段列表中的未知列'admin_id'(SQL:插入到admin_schooladmin_idschool_id)值(91,2)"

表:

  1. 管理员
  2. 学校
  3. admin_school(透视表)

模型管理员

public function schools(){        
    return $this->belongsToMany('App\Models\School', 'admin_school', 'admin_id', 'school_id');
}

模范学校

public function admins(){
    return $this->belongsToMany('App\Admin', 'admin_school', 'admin_id', 'school_id');
}

控制器

$stateAction = Admin::create($data);
$stateAction->schools()->attach($input["data"]["school_id"]);

共1个答案

匿名用户

我认为你对关系的定义有问题,foreign_key在关系中排在第一local_key之后,但是你在管理关系中提到了local_key、第一和foreign_key。

public function admins(){
    return $this->belongsToMany('App\Admin', 'admin_school', 'school_id', 'admin_id'  );
}