سلام دوستان
در رابطه با یک سایت رزرو ویلا چند سوال داشتم(سایتی مثل جاباما)...
1-برای ذخیره تاریخ ازچه فرمتی استفاده کنم توی دیتابیس؟(میخوام جستجو توی سایت بر اساس بازه زمانی انتخاب کاربر هم انجام بشه،با این حال بهترین نوع داده و بهترین راه حل واسه همچین کاری چیه)
2-برای ذخیره ساعت چطور؟
3-اگه فرانت با ری اکت زده بشه،دیگه نیازی نیست کدهام رو توی کنترلرهای عادی بنویسم و اونها رو فقط بای توی کنترلرهای مربوط به api بنویسم درسته؟
4-توی روند پروژه تنها راه تست کردن من همین api هستش با استفاده از postman?
5-تاریخ رزرو و... رو با چه فرمتی توی دیتابیس ذخیره کنم که وقتی به فرانت اند کار میدم بتونه بصورت زیر نمایشش بده:
2 فروردین 1400
6-برای pagination دیتا توی api چیکار باید کرد؟(این روش جواب میده که مثلا هر بار درخواست به سرور میفرسته یه پارامتر get هم باهاش بفرسته که شماره صفحه رو تعیین کنه و من بر اساس اون offset و... رو تعیین کنم و دیتاهای محدودی رو برگردونم؟؟یا روش اصولی تری وجود داره؟)
ممنون دوستان
در خصوص موارد ۱ و ۲ و ۵:
معمولا بهرین کار این هست که تاریخ ها رو بصورت میلادی در دیتابیس ذخیره کنید. (مثلا اینجوری: 12-03-2021) مخصوصا اگر قصد کوئری زدن و انواع محاسبات طبق اون تاریخ رو داشته باشید.
یک datatype داریم بنام DATE و یکی دیگه هم داریم بنام TIME. که هر کدوم مطابق با شرایط استفاده میشوند. یکی دیگه هم هست بنام DATETIME که در مواقعی که هم به تاریخ و هم زمان احتیاج داریم بهترین گزینه هست. مثالش هم میشه فیلد createdat در لاراول اگر دقت کنید.
برای تبدیل به شمسی و نمایش در قالب های مختلف هم، هر دو حالت امکان پذیر هست. هم اینکه بحث تبدیل رو در سمت بک اند انجام بدید و دیتای آماده رو به فرانت بدید. هم اینکه بصورت همون میلادی تحویل بدید تا عملیات تبدیلش در فرانت انجام بشه. بستگی داره به توافق برنامه نویس فرانت و بک بین خودشون و بر اساس شرایط.
مورد سوم:
چیزی بنام کنترلرهای عادی و کنترلرهای API در لاراول نداریم. فقط میتونید برای دسته بندی بهتر کنترلرهایی که قرار هست با API در ارتباط باشند رو در یک پوشه و NameSpace جداگانه قرار بدید. مثلا App\Controllers\API\UserController. منطق کنترلرها هم تقریبا تفاوت چندانی نداره. فقط در آخر بجای اینکه مثل قبل یک View برگردونید معمولا یکسری اطلاعات در قالب Json ارسال میشه.
مورد چهارم:
طبیعتا بله. چون view ندارید عمدتا سر و کارتون با ابزارهایی مثل POSTMAN خواهد بود. ولی خوب میشه از روش های دیگه مثل dd و تست نویسی هم استفاده کرد. یا حتی در صورت نیاز یک view موقتی برای نمایش سریع تر و بهتر داده ها ساخت. محدودیتی وجود نداره.
مورد ششم:
برای paginate کردن میتونید از همون سیستم paginate خود لاراول استفاده کنید و تفاوت چندانی با حالت معمولی نداره. اساس کارش هم بصورت پیش فرض معمولا این هست که دنبال یک متغیر بنام page در ریکوئست میگرده و اگر پیدا کرد شماره صفحه متناظر باهاش رو برمیگردونه.. اگر هم پیدا نکرد صفحه اول.
@mhyeganeh خیلی ممنون بابت پاسخ کامل و جامعتون
فقط در مورد pagination وقتی درخواست از فرانت به سرور میاد،باید چی رو بفرسته که کنترلر متوجه بشه از چه صفحه ای دیتا رو برگردونه؟؟چون ما فقط دستور paginate رو مینویسیم و لاراول خودش دیتا رو برمیگردونه...توی blade که نیازی نیست چیزی بفرستیم و خودش میفهمه...پس اگه درخواست از api بید چطور؟؟ممنون میشم یه توضیح مختصر بدین
خوب از کجا خودش میفهمه؟ معجزه که نمیکنه... اگر دقت کنید در حالت Blade هم وقتی روی هر یکی از صفحات کلیک میکنید شماره صفحه به صورت یک query string بنام page به URL اضافه میشه. و اینجوری متوجه میشه. مثلا:
yourdomain.com/blog?page=3
همینطوره ولی از فرانت اگه این پارامتر رو با GET بفرسته دیتا رو صفحه بندی میکنه و چیز دیگه ای لازم نیست؟؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟