راکت
sariapro
sariapro
توسط sariapro مطرح شد
حل
4 پاسخ

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

سلام رفقا

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

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

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


ثبت پرسش جدید
TEFO
TEFO
تخصص :لاراول
@tefo.ha276 سال پیشمطرح شد
1

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


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

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


سیدعلی موسوی
سیدعلی موسوی
تخصص :سی شارپ و پی اچ پی
@juza666 سال پیشمطرح شد
1

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


sariapro
sariapro
@sariapro6 سال پیشمطرح شد
0

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

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

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

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

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

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


mahdi khanzadi
mahdi khanzadi
تخصص :Software engineer
@khanzadimahdi6 سال پیشمطرح شد
TEFO
TEFO
تخصص :لاراول
@tefo.ha276 سال پیشمطرح شد
1

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


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

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


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

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