【发布时间】:2019-10-06 02:56:49
【问题描述】:
我的目标是当我为payment 编码一个学生时。他(学生)可以关注2 trainings每次付款。 (这是上限 - 1 次付款 = 2 次培训)
在我的表单Payment中,我对一个学生进行编码,例如Menier。
学生有权参加两次培训,(这是上限)
在我的表单Training中:我为学生Menier编码了2次培训。
我的第一个问题:如何将训练次数限制为 2?
(所以,如果我对另一个训练进行编码,它必须阻塞!)
我的第二个问题,如果我为同一个学生编码两次付款。学生有权参加 4 次培训。如何创建这种类型的算法?
这是我现在的代码,我知道它不是很多...
编辑 05-10-2019 - 控制器 培训
public function store(Request $request)
{
$request->validate([
'date_seance' => 'required',
'hour_start' => 'required',
'hour_end' => 'required',
'fk_motorbike' => 'required',
'fk_former' => 'required',
'fk_student' => 'required',
'fk_typeseance' => 'required'
]);
$date_seance = $request->get('date_seance');
$hour_start = $request->get('hour_start');
$hour_end = $request->get('hour_end');
$fk_motorbike = $request->get('fk_motorbike');
$fk_student = $request->get('fk_student');
$fk_former = $request->get('fk_former');
$fk_typeseance = $request->get('fk_typeseance');
$payments = Payment::where('fk_student', $request->get('fk_student'))->first();
if(!isset($payments)){
return redirect()->route('trainings.index')
->with('error', 'No payment, no training! ');
}
$thisStudentsTrainings = Training::where('fk_student', $fk_student)->get();
if(count($thisStudentsTrainings) >= 2){
return redirect()->route('trainings.index')
->with('error', 'The ceiling is 2 trainings! ');
}
$thisStudentsPayments = Payment::where('fk_student', $request->get('fk_student'))->get();
if( (count($thisStudentsPayments) * 2) < count($thisStudentsTrainings) ) {
return redirect()->route('trainings.index')
->with('error', 'test!');
}
else{
Training::create($request->all());
return redirect()->route('trainings.index')
->with('success', 'Add');
}
}
你知道如何解决我的问题吗,我还是 laravel 的初学者。
对于开曼群岛
感谢您的宝贵时间。
【问题讨论】: