检查我的方法update()的付款日期

时间:2019-10-18 07:46:58

标签: laravel laravel-5

在我的方法update()中,我必须检查date_payment和la date_seance。 如果date_payment大于date_seance,我必须有一条错误消息

我的检查不起作用...我做了转储。

Training::find($id); 

我的dateFormat为空?也许是问题所在?

public function update(Request $request, $id)
{
    $request->validate([
        'date_seance' => 'required',
        'hour_start' => 'required',
        'hour_end' => 'required',
        'fk_motorbike' => 'required',
        'fk_former' => 'required',
        'fk_student' => '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');

    $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();
    }
}

3 个答案:

答案 0 :(得分:1)

您的雄辩查询看起来还可以。

您可以尝试以下操作:

  1. 在使用$ date_seance之前检查它(它是否已填写并 格式正确吗?)
  2. ->first()更改为->toSql()并 转储结果,以便在数据库客户端中轻松调试。

在这些情况下,根据我的经验,这通常是格式的小错误或误解。

答案 1 :(得分:1)

使用firstOrFail()代替first()

答案 2 :(得分:0)

我发现我的错误是缓存pfffffff ...:-(

php artisan config:cache
php artisan cache:clear
php artisan view:clear

现在可以了!谢谢您的帮助。