Davood
1 سال پیش توسط Davood مطرح شد
8 پاسخ

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

سلام وقت بخیر

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

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

مشکل چیه؟

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

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

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


ثبت پرسش جدید
Javad Karimi
تخصص : فول استک
@javadkarimii 1 سال پیش مطرح شد
1
$archives = Post::selectraw('*')
            ->orderby('created_at','desc')
            ->get()
            ->groupBy(function($date) {
                return \Morilog\Jalali\Jalalian::forge($date->created_at)->format('%Y');
            });

Davood
تخصص : PHP - Laravel
@dfardabasi 1 سال پیش آپدیت شد
0

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


Javad Karimi
تخصص : فول استک
@javadkarimii 1 سال پیش مطرح شد
1

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


Davood
تخصص : PHP - Laravel
@dfardabasi 1 سال پیش آپدیت شد
0

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


Javad Karimi
تخصص : فول استک
@javadkarimii 1 سال پیش آپدیت شد
1
$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
تخصص : PHP - Laravel
@dfardabasi 1 سال پیش مطرح شد
0

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


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 1 سال پیش مطرح شد
1

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


Davood
تخصص : PHP - Laravel
@dfardabasi 1 سال پیش مطرح شد
0

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


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

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