سلام
من یک وبسایت مدیریت محتوا با لاراول دارم که از طریق وبسایت کاربر میتونه مطالبی رو ایجاد کنه و بنویسه، حالا مثل وردپرس میخوام قابلیتی به این سیستم اضافه کنم که بتونم به سیستم دستور بدم در فلان زمان خاص پست رو انتشار بده (یعنی یه فیلد در دیتابیس رو آپدیت کن)
ایده خودم اینه:
بیام و یه جدول بسازم که فیلد های زیر رو داره
id
postid
when - فیلد از جنس datetime
status - فیلد از جنس boolean
updatedat
کار این جدول اینه وقتی که دارم پست رو منتشر میکنم اگر فیلد زمان بندی رو انتخاب کنم، اول پست، تو جدول خودش save بشه و آیدیش بدست بیاد بعد اطلاعات لازم به جدول فوق هم اضافه بشه
و با یه schedule بیام و هی چک کنم که اگه این جدول حاوی رکوردی بود که status اون 0 هست بیاد و فیلد when رو بگیره با زمان فعلی مقایسه کنه اگر کمتر یا مساوی بود بعد از پیدا کردن post با آیدی که داره وضعیت (status) پست مربوطه رو آپدیت کنه (پست رو انتشار بده)
حالا آیا شما راهکار بهتری به ذهنتون میرسه؟ یا اینکه ایده ای برای بهبود این راهکار دارید؟
@mrmmg
به نظرم میاد خیلی روش پیچیده و دشواری رو انتخاب کردید و اصلا نیازی به این کارها نیست. کل قضیه با یک ستون اضافه کردن به جدول پست هاتون حل میشه مثلا با عنوان published_at که از جنس datetime هست. اضافه کردن یک جدول جدید و job و scheduling و این داستان ها برای چنین قضیه ای چندان منطقی شاید نباشه واقعا. خود وردپرس هم تا جایی که خاطرم هست از همین روش استفاده میکنه.
اگر اپراتور انتشار فوری رو انتخاب کرد که زمان فعلی رو در این فیلد قرار میدید و اگر انتشار زمان بندی شده رو انتخاب کرد تاریخ و ساعت رو ازش میگیرید و میریزید داخل این فیلد.
برای نمایش به مخاطبان عمومی سایت هم با یک دستور where در query builder تون اون هایی که هنوز زمان انتشارشون نرسیده رو فیلتر میکنید و الباقی رو نمایش میدید. همین 🙂🙄
لازم به ذکر هست که بنده خودم به شخصه مدت زیادی هست که از همین سیستمی که عرض کردم برای اکثر پروژه هام استفاده میکنم و همه چیز خیلی عالیه.
سلام
می تونید به جای این کار یه فیلد در نظر بگیرید که تاریخی باشه که قراره پست منتشر بشه
بعد موقع نمایش پست ها فقط پست های از اون تاریخ به بعد رو بیارید
شاید پاسخ شما همینجا باشد
@coaradsupp
ممنونم
حالا شیوه پیاده سازیش چندان مهم نیست مهم اینه که اون جدول مذکور مهمه یا نه
ولی خب با جاب هم میشه و نظر شما صحیحه
دوست دارم نظرتون رو راجع به اون جدوله بدونم...