1masoud
5 سال پیش توسط 1masoud مطرح شد
5 پاسخ

کاربرد این توابع

@ali.bayat
@Alimotreb
کاربرد توابع transactionوbeginTransactionوrollBackوcommit چی هست با مثال


ثبت پرسش جدید
mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش مطرح شد
0

@ali.bayat

@khanzadimahdi
میشه با مثال در لاراول بگید


tresa021
تخصص : Professional PHP Developer
@claymore0465 5 سال پیش مطرح شد
1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش مطرح شد
0

@khanzadimahdi
@claymore0465
الان من این کد رو نوشتم میشه راهنمایی کنید توضیح ها رو روی این کد بدید

public function store(UserRequest $request)
  {
    $user  = new User([
      'avatar'    => null,
      'active'    => $request->post('active', true),
      'name'      => $request->post('name'),
      'email'      => $request->post('email'),
      'department_id'  => $request->post('department_id'),
      'ip'      => $request->post('ip'),
      'expire_at'    => $request->post('expire_at', 0),
      'password'    => bcrypt($request->post('password')),
      'language'    => $request->post('language', 'fa'),
      'last_name'    => $request->post('last_name'),
      'organization'  => $request->post('organization'),
    ]);

    DB::beginTransaction();
    try {
      $user->save();
      if($request->file('avatar')){
        $file  = $request->file('avatar');
        $avatar  = $user->id . '_' . now()->timestamp . '.' . $file->clientExtension();
        $request->file('avatar')->storeAs("public/avatars", $avatar);
        $user->avatar  = encrypt($avatar);
        $user->save();
      }

      DB::commit();
      return ResponseHelper::setResult([
        'result'    => [
          'id'  => $user->id,
        ],
        'statusCode'  => Response::HTTP_CREATED,
      ]);
    } catch (Exception $ex) {
      DB::rollback();
      return ResponseHelper::setResult([
        'statusCode'  => Response::HTTP_INTERNAL_SERVER_ERROR,
        'isError'    => true,
      ]);
    }
  }

1masoud
تخصص : php,laravel
@masoudproton 5 سال پیش مطرح شد
0

@ali.bayat
میشه یک مثال داخل این کد بگید

 DetailsModel::beginTransaction(function(){
            try{
                DB::commit();
            }catch (Exception $ex){
                DB::rollBack();
            }
        });

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام