راکت
حل شده

ایجاد لاگ هنگام ذخیره سازی مدل ها

4 پاسخ

سلام رفقا

من می خوام زمانی که دارم توی مدلی دیتایی رو ذخیره می کنم (یا آپدیت) همزمان یک لاگی داخل جدول log تو دیتابیسم بندازم.
راهی که به ذهنم میاد این هست که برم کلاس model رو بررسی کنم و داخل اون کدی بزنم که خودکار خودش لاگ بندازه

قبل از کاوش در این مورد می خواستم بدونم ایا لاراول برای این مورد چیزی داره؟
و یا اینکه اگر نداره می تونید کمکم کنید که باید دقیقا کجاها رو مورد ویرایش توی کلاس Model قرار بدم؟

پیشاپیش ممنونم از راهنمایی حضرات آیات

ثبت پرسش جدید

پاسخ‌ها

4
TEFO
TEFO
@tefo.ha27

تخصص: لاراول

بهترین پاسخ

اگه بدون پکیج میخاین در واقع در مدلتون یه متد وجود داره به اسم boot به صورت static هستش و توی اونجا میتونین بگین اگه ساخته شد تو دیتابیس یه لاگ تازه ایجاد کن اگه اپدیت شد این ردیف توی دیتابیس رو ویرایش کن الی اخر...
به این صورت


    protected static function boot()
    {
// این رو حتما باید بنویسین
        parent::boot();
// این وقتیه که ساخته میشه
        static::creating(function($post) {
            // کاری که در واقع میخاین انجام بدین دستتون کاملا بازه
        });
    }

این لینک هم ممکنه به دردتون بخوره
http://vrgl.ir/xCGq6

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

سلام دوست عزیز
شما از پکیج زیر استفاده کن کلی لاگ بهت میده مثلا مرورگرش چیه، درخواستش post, get یا داده های که ارسال شده به روت چی هستن ، به کدوم روت ها ارسال شده، کاربر کی بوده و کلی جزییات دیگه
https://github.com/shetabit/visitor

sariapro
sariapro
@sariapro

سید علی جان ممنونم ازت بابت معرفی پکیج ارزشمند

اما واقعیت امر من چیزه دیگه ای طلب دارم. می خوام موقعی که یه مدلی داره دیتایی رو آپدیت یا اینکه ای ایجاد می کنه یه لاگ بزنه از محتوای قبلی که داشته و از محتوای جدیدی که هست.

بهتر بخوام بگم این هست که من یه جدولی دارم به نام logs . که ستون هاش تقریبا به این شرح هست:

id => integer
new_new => json
old_data =>json
user_created
time_created

موقعی که مدلی داره دیتای جدیدی ذخیره میکنه مسلما old_data خالی هست و new_new یه محتوای json هست که شامل تمامی ستون های مدلی میشه که صداش زده و محتوای اون ..

نمی دونم متوجه نیازم شدی یا نه.
اگر بد توضیح دادم بگو مجدد و بهتر بگم

شاید پاسخ شما همین‌جا باشد

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

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