В моем проекте Laravel -5.8 у меня есть эти модели
HrGradeLevel
class HrGradeLevel extends Model
{
protected $table = 'hr_grade_levels';
protected $fillable = [
'grade_level_code',
'grade_level_name',
'description',
];
public function designation(){
return $this->hasMany('App\Models\Hr\HrDesignation');
}
public function employee(){
return $this->hasMany('App\Models\Hr\HrEmployee');
}
}
HrDesignation
class HrDesignation extends Model
{
protected $table = 'hr_designations';
protected $fillable = [
'designation_name',
'grade_level_id',
];
protected $casts = [];
public function gradelevel()
{
return $this->belongsTo('App\Models\Hr\HrGradeLevel','grade_level_id');
}
}
HrEmployee
class HrEmployee extends Model
{
protected $table = 'hr_employees';
protected $fillable = [
'first_name',
'last_name',
'grade_level_id',
];
protected $casts = [];
public function gradelevel()
{
return $this->belongsTo('App\Models\Hr\HrGradeLevel','grade_level_id');
}
}
HrDesignation и HrEmployee имеют внешний ключ grade_level_id, который является производным от HrGradeLevel
HrGradeLevelController
public function destroy(Request $request, $id)
{
$grade = HrGradeLevel::find($id);
$grade->delete();
Session::flash('success', 'Grade Level deleted successfully.');
return redirect()->route('hr.grade_level.index');
}
Из вышеприведенного контроллера, пользователь может удалить строку HrGradeLevel.
* 1018 1025 *, прежде чем пользователю будет разрешено удалить, я хочу, чтобы приложение проверило HrDesignation и HrEmployee, если у любого из них есть данные в grade_level_id, я хочу, чтобы приложение отображало сообщение, и оно не должно разрешать удаление.
Как мне этого добиться?
Спасибо.