محسن
4 سال پیش توسط محسن مطرح شد
1 پاسخ

کار با Transactions و event در لاراول

سلام.فرض کنید بنده یک کاربر به سایتم اضافه میکنم.بعد از ایجاد کاربر باید در چند جدول دیگه هم رکورد تعریف شه.مثلا دسترسی های کاربر و ...

من میتونم همه این کوئری ها رو تو یه Transactions هندل کنم تا اگر در هر مرحله به مشکل خورد کل فرایند لغو بشه و ارور برگردونه.

اما نمیخوام همه این موارد تو کنترلر ایجاد کاربر انجام شه.میخوام موارد مربوط به ایجاد سطوح دسترسی کاربر و ... رو با event ها هندل کنم.

به شکل زیر:

  try {
            DB::beginTransaction();

            $newUser = User::create([
                'name' => $companyName
                , 'activityType' => $activityType
                , 'city' => $city
                , 'level_id' => $plan
                , 'created_at' => Carbon::now()
            ]);

            event(new UserCreated($newUser));

            DB::commit();
            return response()->json('ok');
        } catch (Exception $exception) {
            DB::rollBack();
            Log::error($exception);
            return response()->json('error');
        }

من میخوام اگر listener تو ایجاد سطوح دسترسی به مشکل خورد ، خود کاربر هم ایجاد نشه اصلا.

ممنون میشم راهنمایی کنید


ثبت پرسش جدید
نیما نوری
@NimaN2D 4 سال پیش مطرح شد
0

میتونید جاب تعریف کنید که در زمان فیلد شدن ، کارهای پاک کردن رو انجام بده ولی طبیعتا بهترین روش همین ترنزکشن هست که میتونید به یک جاب واحد الصاق کنید


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

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