我必须在我的方法store()中进行付款日期和休会日期之间的检查。 方法store()可以!
$datePayment = Payment::where('fk_student', $request->get('fk_student'))
->whereDate('date_payment', ">" , $date_seance)
->first();
if(isset($datePayment)){
return redirect()->route('trainings.index')
->with('error', 'There is a problem with the payment date! ');
}
我的问题出在我的函数update()中,我被卡住了。当我更改date_seance的值时,没有检查。
$datePayment = Payment::where('fk_student', $request->get('fk_student'))
->whereDate('date_payment', ">" , $date_seance)
->first();
if(isset($datePayment)){
return redirect()->route('trainings.index')
->with('error', 'There is a problem with the payment date! ');
}
else{
$trainings = Training::find($id);
$trainings->date_seance = $request->get('date_seance');
...
$trainings->save();
return redirect()->route('trainings.index')
->with('success', 'Update!')->withInput();
}
我知道我的问题在这里:
if(isset($datePayment)){
return redirect()->route('trainings.index')
->with('error', 'There is a problem with the payment date! ');
}
谢谢您的帮助。
答案 0 :(得分:2)
如果该方法在update($id)
方法内,则对date_seance
所做的更改将不作任何检查,因为查询正在寻找错误的学生付款。
在寻找付款支票之前,请获取方法内正在更新的培训模型(从传入的$id
中获取)。这将从模型中获得正确的学生id
。所以..
在更新方法中:
$training = Training::find($id);
$datePayment = Payment::where('fk_student', $training->fk_student) // NOT from $request
->whereDate('date_payment', ">" , $date_seance)
->first();
请确保您从要付款的学生那里得到付款,而不是拉扯正在写表格的学生 。