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

پاک کردن اطلاعات بعد از مدتی در لاراول

سلام دوستان برای اینکه بعد از مدتی اطلاعات پاک یا جاگزین بشه باید چیکار کرد ؟ برای مثال اگر بخوایم کدی که برای تایید شماره تلفن ارسال شده بعد از مدتی منقضی بشه چیکار باید کرد اگر مقدور هست به ذکر کد جواب بدین


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
0

نتیجه برداشتم از سوالتون رو میگم؛

شما برای اینکه یک کد رو بفهمی کی منقضی شده و کاربر رو مجدد مجبور به درخواست کد کنی کافیه توی اون تابعی که قرار اطلاعات بررسی بشه از carbon تایم جاری و فیلد created_at استفاده کنی

Forget::where('created_at', '<', Carbon::now())->get();

و باهم مقایسه کنی که اگر الان درخواستی داره سمت این متد میاد با where کردن اون کد رو پیدا میکنی توی جدولت و بعد تاریخ و تایم درخواست رو با فیلد created_at چک کنی اگر کمتر از مدت زمان مدنظرت بود که اجازه کارهای بعدی متدت رو میدی در غیر اینصورت یک پیام برمیگردونی

برای سوال اولت هم شما توی هاستت یک کرون جاب میذاری مثلا ماهی یکبار یک url سایت یا queue رو برات اجرا کنه شما توی متد مد نظرت میای کدهای که قراره انجام بشه مثلا با where اطلاعات جدول رو واکشی میکنی اون where میتونه بازده یک زمان باشه که قراره اطلاعات رو از دیتابیس بکشه بیرون و کدهای حذف رو مینویسی

این جواب ها رو با گوشی برات نوشتم تحلیل با خودت :)))


محمد مهدی کارگر
تخصص : طراح و برنامه نویس
@unlocker 5 سال پیش مطرح شد
2

@sinaa.hajebi
از لاراول کش استفاده کنید ، دقت کنید کش لاراول کش مرورگر نیست و روی سایت ذخیره میشه ، میتونه به صورت فایل ، دیتابیس و... مثل این ها با توجه نیاز خودتون باشه ، که در مورد شما نیاز به تنظیمات خاصی نیست ، فقط باید ازش استفاده کنید.
https://laravel.com/docs/7.x/cache
برای مثال میتونید شماره همراه رو key در نظر بگیرید و کد verify رو value اون و به صورت زیر برای ده دقیقه در کش لاراول ذخیره کنید:

Cache::put('key', 'value', now()->addMinutes(10));

برای استخراج اون هم به صورت زیر عمل کنید :

$value = Cache::get('key');

خیلی ساده.


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

@unlocker
جالب بود دمت گرم


sinaa
@sinaa.hajebi 5 سال پیش مطرح شد
0

@unlocker اونوقت کد تو دیتابیس ذخیر میشه ؟


محمد مهدی کارگر
تخصص : طراح و برنامه نویس
@unlocker 5 سال پیش مطرح شد
0

@juza66 🌹

@sinaa.hajebi بله میتونید در دیتابیس هم ذخیره کنید.
باید در config/cache.php مقدار CACHE_DRIVER رو روی database بگذارید و البته یکسری migration داره که قبلش باید حتما migrate کنید.
مستندات رو مطالعه کنید ، کامل توضیح داده.
البته برای این موردی که شما گفتید نیازی به دیتابیس ندارید.
https://laravel.com/docs/7.x/cache


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

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