سهیل
2 سال پیش توسط سهیل مطرح شد
5 پاسخ

ذخیره عملیات انجام شده در لاراول

سلام دوستان
میخواستم یه سرویسی بنویسم که هر موقع یه اکشی داخل برنامه اتفاق افتاد اسم اون اکشن مثلا store یا edit و ای دی یوزر رو برام ذخیره کنه و جوری باشه که داخل تمام کنترلر ها قابل اجرا باشه
اگه امکانش هست راهنماییم کنید


ثبت پرسش جدید
مهدیار حقی
@mahdiyarhaghghi922 2 سال پیش مطرح شد
0

ببین من واسه این روش اومدم یه میدلوویر کلی ساختم
که هر موقع کاربر لاگین بود قبل از نمایش صفحه ریکوست، url و ... رو ازش میگرفتم و توی دیتابیس ذخیره اش می کردم بعد میفرستادم به ویو زمان زیادی هم نمیگیره


Bahman Aliveisi
@roj 2 سال پیش مطرح شد
میلاد قدیریان
تخصص : برنامه نویس بک اِند | لاراول
@miladia 2 سال پیش مطرح شد
0

راه درستش استفاده از یه middleware هستش و هرکاری خواستی بکنی رو لاگ بگیری،
راه دوم اینه که یک کنترلر یا هلپر بنویسی و بهش پارامتر بدی و هرجا خواستی صداش بزنی تا برات لاگ مورد نیاز رو ثبت کنه
دیتابیس ثبت رو هم خیلی راحت با ستونهای یوزر_ایدی، لاگ، تاریخ و ساعت ذخیره کن


سهیل
تخصص : برنامه نویس
@soheilfrzn 2 سال پیش مطرح شد
0

میشه جوری نوشت که دیگه نیازی به new کردن نباشه و هر اکشنی که یوزر انجام داد به طور خودکار اون کلاس فراخوانی بشه و اطلاعات تو دیتا بیس ثبت بشه؟؟


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 2 سال پیش آپدیت شد
0

سوالتون خیلی کلیه ولی احتمالا چیزی که دنبالش هستید Observer هست و همون طوری که از اسمش بر میاد کارش این هست که حواسش به یکسری اتفاقات خاص باشه و هر وقت رخداد انجام شد، یکسری دستورات رو اجرا می‌کنه.

در لاراول این قابلیت برای Model ها به زیباترین شکل پیاده سازی شده و می‌تونید ازش استفاده کنید:
https://laravel.com/docs/master/eloquent#observers

و در نهایت مثلا اینجور میشه که می‌تونید تعریف کنید هر وقت یک رکورد از اطلاعات حذف شد، ویرایش شد یا جدید ایجاد شد فلان دستورات هم پشت بندش انجام بشه. بر اساس نیاز خودتون باید این بخش رو توسعه بدید و مواردی که براتون مهم هستند رو ذخیره کنید.

اگر هم دنبال استفاده اش به شکل گسترده تر و خاص تر هستید میتونید از Event ها و Listener ها استفاده کنید و هر جایی که لازم داشتید یک Event رو dispatch بکنید تا Listener های مرتبطش الباقی کارها رو انجام بدن:
https://laravel.com/docs/master/events


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

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