У меня есть 2 таблицы, первая - Students
с 3 полями (имя, имя, fk_diploma). Затем моя вторая таблица называется Diplomas
, и есть 1 поле с именем (type_diploma).
Для информации у меня есть 3 значения в моем поле type_diploma
:
1) DiplomaA
2) DiplomaB
3) DiplomaC
В моей системе проверки я хочу, чтобы DiplomaA
или DiplomaB
были проверены, но не DiplomaC
, у меня должно быть сообщение об ошибке.
Например: * «Извините, у вас нет навыков для получения дипломаC.»
У вас есть идея, как я могу это сделать?
public function store(Request $request)
{
$diploma = Diploma::select('type_diploma')->where('id',$request->fk_diploma)->get();
if($diploma->type_diploma != 'DiplomaC')
{
$request->validate([
'name' => 'required|min:3',
'firstname' => 'required|min:2|max:200',
'fk_diploma' => 'required'
]);
}
$exists = Student::where('name', $request->get('name'))->where('firstname', $request->get('firstname'))->where('fk_diploma', $request->get('fk_diploma'))->count();
if (!$exists){
Student::create($request->all());
return redirect()->route('students.index')
->with('success', 'new data created successfully');
}
else{
return redirect()->route('students.index')
->with('error', 'duplicate');
}
}
Моя модель Диплом
class Diploma extends Model
{
protected $fillable = ['type_diploma'];
public function diplomas(){
return $this->hasMany('App\Student', 'fk_diploma');
}
}
Модель Студент
class Student extends Model
{
protected $fillable = ['name', 'firstname', 'fk_diploma'];
public function diplomas(){
return $this->belongsTo('App\Diploma' , 'fk_diploma');
}

