Laravel (Новый пользователь): функция сохранения пользователя для обновления () и сохранения (). Если не существует save () иначе Update () - PullRequest
0 голосов
/ 25 февраля 2020
  public function store(Request $request)
    {
        //

        /*$request->validate([
                    'user_id'=>'required',
                    'time_in'=>'required',
                     'log_date'=>'required',
        ]);*/
        //dd($_POST);

        $attendance = new Attendance([
            'user_id' => $request->get('user_id'),
            'location' => $request->get('location'),
            'time_in' =>  date('h:i:s'), /*$request->get('time_in'),*/
            'log_date' => date('Y-m-d')  /* $request->get('log_date')*/

        ]);

       $user=Attendance::where('user_id', $request->get('user_id') && 'log_date', date('Y-m-d'))->first();

if($user == null) {

    $attendance->save();
    return  redirect()
        ->back()
        ->with('success', $request->get('user_id').':  You have clocked in successfully!');

}else{

   /* Attendance::where('user_id', $request->get('user_id') && 'log_date', date('Y-m-d'))->update(
        ['time_out' => date('Y-m-d')]
    );*/

   $attendance->update(['time_out'=> date('Y-m-d')]);

    return  redirect()
        ->back()
        ->with('success', $request->get('user_id').':  You have clocked Out!');


}

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Спасибо всем, кто внес свой вклад. Это сработало

publi c Функциональный магазин (Request $ request) {

    $user= Attendance::where(['user_id'=> $request->get('user_id'), 'log_date' => date('Y-m-d')] )->first();
   // $existingLog = Attendance::find($user->id);


    if(!$user){
        Attendance::create(['user_id'=> $request->get('user_id'), 'location'=>$request->get('location'),
            'time_in'=>date('h:i:s'), 'log_date'=>date('Y-m-d')]);

        return  redirect()
            ->back()
            ->with('success', $request->get('user_id').':  You have clocked in successfully!');

    }


    $user->update(['time_out'=> date('h:i:s')]);


    return  redirect()
        ->back()
        ->with('success', $request->get('user_id').':  You have clocked Out!');

}

0 голосов
/ 25 февраля 2020

Вам нужно сделать следующее:

$user= Attendance::findOrFail($request->get('user_id');

if( !empty( $user )){

    $user->time_out = date('Y-m-d');
    $user->save();
    return  redirect()
    ->back()
    ->with('success', $request->get('user_id').':  You have clocked Out!');
} else {
     $attendance = new Attendance;
     $attendance->user_id = $request->get('user_id');
     $attendance->location = $request->get('location');
     $attendance->time_in =  date('h:i:s');
     attendance->log_date = date('Y-m-d');         
     $attendance->save();

      return  redirect()
    ->back()
    ->with('success', $request->get('user_id').':  You have clocked in successfully!');
}
...