راکت

صفحه آرشیو سالانه مقالات با لاراول

8 پاسخ

سلام وقت بخیر

ببخشید من میخوام یه بخش به وب سایت اضافه کنم به اسم آرشیو مقالات و میخوام سال به سال دسته بندی بشن

گوئری پایین رو براش نوشتم ولی وقتی میخوام تاریخ رو به شمسی برگردونم نمایش بدم تاریخ ا348 شمسی رو بهم برمیگردونه

مشکل چیه؟

$archives = Post::selectraw('*')->orderby('created_at','desc')->get()->groupBy(function($date) {
            return Carbon::parse($date->created_at)->format('Y');
        });

برای نمایش فارسی هم از morilog jalali استفاده میکنم
به پیشنهاد بعضی دوستان ورتا هم نصب کردم اما پاسخ درستی نداد بهم

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

Davood
Davood
@dfardabasi
ثبت پرسش جدید

پاسخ‌ها

8
Javad Karimi
Javad Karimi
@javadkarimii

تخصص: فول استک

$archives = Post::selectraw('*')
            ->orderby('created_at','desc')
            ->get()
            ->groupBy(function($date) {
                return \Morilog\Jalali\Jalalian::forge($date->created_at)->format('%Y');
            });
Davood
Davood
@dfardabasi

تخصص: PHP - Laravel

سلام
ممنونم ولی باز این یه مشکلی داره
تو صفحه اصلی که میخوام بخش آرشیو رو بذارم اوکیه سالها رو نمایش میده اما وقتی میخوام تو صفحه دیگه تمام مقالات مثلا سال 1400 رو نشون بدم باید 1400 رو از طریق href بفرستم به صفحه مورد نظر بر اون اساس کویری بزنم تا مقالات مرتبط با سال رو بیارم اما این تاریخ شمسی هست و وقتی میخوام کوئری بزنم هیچی بهم برنمیگردونه و کالکشن خالی بهم میده وقتی هم میام اونجا میخوام همینو دوباره به میلادی تبدیل کنم برای ارسال به کویری همه رو سال 2023 برمیگردونه حالا میخواد 1400 باشه 1401 باشه یا 1402 فرق نداره کلا 2023 بهم میده
این میشه بهم راهنمایی کنید چطور میتونم بدون کوئری مجدد نمایشش بدم که نیاز به تغییر نداشته باشه؟

شاید پاسخ شما همین‌جا باشد

Javad Karimi
Javad Karimi
@javadkarimii

تخصص: فول استک

میتونی هر دوتا تاریخ میلادی و شمسی را توی ارشیو صفحه نخست استفاده کنی مثلا 1402 برای نمایش به کاربر ولی توی href و کارهای پشت برنامه میلادی رو ارسال کنی

Davood
Davood
@dfardabasi

تخصص: PHP - Laravel

ممنون از وقتی که برای من گذاشتید
به عنوان سوال آخر اینی که گفتید هم تاریخ شمی هم میلادی رو با هم استفاده کنم کوئری بالا رو چطور باید تغییر بدم چون این فقط تاریخ شمسی میفرسته و نمیشه تبدیلش کنی

Javad Karimi
Javad Karimi
@javadkarimii

تخصص: فول استک

$archives[0] = Post::selectraw('*')
        ->orderby('created_at','desc')
        ->get()
        ->groupBy(function($date) {
            return \Morilog\Jalali\Jalalian::forge($date->created_at)->format('%Y');
        });
$archives[1] = Post::selectraw('*')
        ->orderby('created_at','desc')
        ->get()
        ->groupBy(function($date) {
            return $date->created_at)->format('%Y')(;
        });

الان دو تا ارایه به view میفرستی که نظیر به نظیر به هم مرتبط هستند
فقط کد ها یکم غلط املایی داره

Davood
Davood
@dfardabasi

تخصص: PHP - Laravel

ممنون از محبتتون سپاسگزارم

محمد رضا
محمد رضا
@salar.mohammad2013

تخصص: Full Stack Developer

سلام دوست عزیز
مشکلتون که به نظر حل شده اما توی همچین حالتی که پست های سال ب سال رو میخوایید قطعا داده ها و تعدادشون زیاد هست و درخواستشون به صورت یکجا شاید نیاز نباشه
پیشنهاد میکنم طوری طرح بریزید که داده ها بعد از انتخاب سال مورد نظر درخواست بشن
یا از livewire استفاده کنید و یا از ajax
با یه لودینگ زیبا هم اون انتظار رو حل کنید
هرچند که قطعا این موارد رو بهتر از من میدونید و حتما نیاز پروژتون این نوع نمایش هست که انتخاب کردید . 😅😅

Davood
Davood
@dfardabasi

تخصص: PHP - Laravel

سلام
ممنون از پاسختون
خوب همینطور هست سال های مورد نظر مثلا ۱۴۰۰ - ۱۴۰۱ و ۱۴۰۲ لیست میشه و روی هر سالی،که کلیک میکنی میره صفحه مورد نظر و مقالات متناسب با سال انتخابی لیست میشه
من مشکلم فقط بخش تاریخ بود که نمیشد تبدیلش کرد
هنوز متاسفانه نتونستم با لایووایر کار کنم اما درباره کد ajax یه توضیح کوچیک میدید؟

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

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