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

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

سلام رفقا

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

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

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


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

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


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

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


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

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


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

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

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

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

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

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

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


mahdi khanzadi
تخصص : backend developer at Snapp mar...
@khanzadimahdi 4 سال پیش آپدیت شد
TEFO
تخصص : لاراول
@tefo.ha27 4 سال پیش مطرح شد
1

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


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

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


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

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