У меня есть этот проект в Laravel -5.8, который проверяет:
goal_type_id, appraisal_identity_id, employee_id как уникальный в appraisal_goals с использованием запроса правила.
goal_type_id, appraisal_identity_id, employee_id являются внешними ключами
Модель
protected $fillable = [
'id',
'goal_type_id',
'appraisal_identity_id',
'employee_id',
'company_id',
];
StoreAppraisalGoalReques
public function rules()
{
return [
'goal_type_id' => [
'required',
Rule::unique('appraisal_goals', 'goal_type_id', 'appraisal_identity_id', 'employee_id')
],
];
}
public function messages()
{
return [
'goal_type_id.required' => 'Please enter the Goal Type!',
'goal_type_id.unique' => 'Goal Type already exists. Please enter a unique Goal Type.!',
];
}
Контроллер
public function store(StoreAppraisalGoalRequest $request)
{
$userCompany = Auth::user()->company_id;
$employeeId = Auth::user()->employee_id;
$identities = DB::table('appraisal_identity')->select('id','appraisal_name')->where('company_id', $userCompany)->where('is_current', 1)->first();
try {
$goal = new AppraisalGoal();
$goal->goal_type_id = $request->goal_type_id;
$goal->appraisal_identity_id = $request->appraisal_identity_id;
$goal->employee_id = $employeeId;
$goal->is_active = 1;
$goal->save();
foreach ( $request->activity as $key => $activity){
$goaldetail = new AppraisalGoalDetail();
$goaldetail->kpi_description = $request->kpi_description[$key];
$goaldetail->appraisal_doc = $request->application_doc[$key];
$goaldetail->activity = $request->activity[$key];
$goaldetail->start_date = $startDate ->toDateTimeString();
$goaldetail->end_date = $endDate->toDateTimeString();
$goaldetail->save();
}
Session::flash('success', 'Appraisal Goal is created successfully');
return redirect()->route('appraisal.appraisal_goals.index');
} catch (Exception $exception) {
Session::flash('danger', 'Appraisal Goal creation failed!');
return redirect()->route('appraisal.appraisal_goals.index');
}
}
У сотрудника может быть только один target_type_id, относящийся к appraisal_identity_id и employee_id в оценочных оценках Таблица.
Сотрудник успешно сделал это. Но когда другой сотрудник входит в систему и отправляет сообщение, я получаю эту ошибку:
Тип цели уже существует. Пожалуйста, введите уникальный тип цели.!
Обратите внимание, что этого не существует.
, как показано в пользовательском сообщении проверки правил:
Как мне решить эту проблему?
Спасибо.