У меня есть эти таблицы: ERD моей базы данных
Я создаю API и выстроил связи между этими таблицами:
1.
class address extends Model
{
public $timestamps=false;
protected $guarded=[];
protected $primaryKey = 'addressID';
protected $fillable = ['streetAddress','country','city','postalCode','employeeID'];
public function employee()
{
return $this->belongsTo(employee::class);
}
}
2.
class department extends Model
{
public $timestamps=false;
protected $primaryKey = 'departmentID';
protected $fillable= ['departmentName'];
public function role()
{
return $this->hasMany(role::class);
}
public function employees()
{
return $this->hasMany(employee::class);
}
3.
class employee extends Model
{
public $timestamps=false;
// protected $guarded=[];
protected $primaryKey = 'employeeID';
protected $fillable = ['firstName','lastName','email','password','phone','gender','roleID','departmentID'];
public function address()
{
return $this->hasMany(address::class);
}
public function department()
{
return $this->belongsToMany(department::class);
}
public function role()
{
return $this->belongsToMany(role::class);
}
}
4.
class privilege extends Model
{
public $timestamps=false;
protected $guarded=[];
protected $primaryKey = 'privilegeID';
protected $fillable = ['privilageName','roleID'];
public function statuse()
{
return $this->hasMany(statuse::class);
}
public function role()
{
return $this->belongsTo(role::class);
}
}
5.
class role extends Model
{
public $timestamps = false;
protected $guarded = [];
protected $primaryKey = 'roleID';
protected $fillable = ['roleName','departmentID'];
public function privilege()
{
return $this->hasMany(privilege::class);
}
public function employee()
{
return $this->hasMany(employee::class);
}
public function department()
{
return $this->belongsTo(department::class);
}
}
6.
class statuse extends Model
{
public $timestamps = false;
protected $guarded = [];
protected $primaryKey = 'statusID';
protected $fillable = ['edit', 'delete', 'view','privilegeID'];
public function privilege()
{
return $this->belongsTo(privilege::class);
}
}
Теперь мои роль и сотрудник таблицы зависят от таблицы отдел , поэтому я хочу, чтобы при удалении любой отдел , связанные с ним сотрудники и роли также должны быть удалены. Я не знаю, как это сделать, используя красноречивую модель.
Я пробовал это в моем контроллере ролей , но он не работает.
public function destroy($id)
{
$roles = new role;
$roles = $roles::find($id);
$roles->$roles->departments()->attach(['departmentID']))->delete();
//$roles->delete($roles->departments()->attach(['departmentID']));
if ($roles) {
$finaldata['status'] = "Record Deleted";
$finaldata['reason'] = "Record Deleted Successfully";
} else {
$finaldata['status'] = "Record Not Deleted";
$finaldata['reason'] = "Record was not present";
}
$finaldata['deleted role data '] = $roles;
return response()->json($finaldata);
}
}
Может быть Я упускаю любую точку или логику c здесь, пожалуйста, ведите меня.