سلام
من میخوام با یک سلکت از پست ها مقدار ده پست اخر هر دسته رو پیدا کنم .... سپس اون پست ها رو بر اساس دسته ها نشون بدم ...
جدول هم اینجوریه که هر پست یک دسته داره و ای دی دته رو توی هر پست اوردم و ریلیشن مورد نظر رو هم نوشتم ...
این کار شدنیه ؟
سلام
میتونید از همچین کدی استفاده کنید.
تو جدول دسته بندی ها یه سلکت بزن و دسته هایی رو که میخوای رو انتخاب کن بعد با جوین پست های مربوط به اونا رو دربیار.
کد:
SELECT p.title, p.desc, p.cat_id, c.id, c.title as category
FROM categories AS c
INNER JOIN posts AS p ON p.cat_id = c.id
WHERE publish=1
ORDER BY id DESC
LIMIT 10
نیاز به چنین کدی نیست از فریمورک استفاده می کنی تا وقتتو صرف نوشتن چنین کدهای SQL پیچیده ای نکنی
تو مدل هاتون relation ها رو اگه تعریف نکردین تعریف کنید طبق این آموزش :
http://forum.ncis.ir/Thread-%D8%A2%D9%85...32#pid5332
حالا کافیه به صورت Eager Loading تمام پست های همه دسته ها رو بدست بیارید:
$categories = Category::with('posts')->get();
وقتی به ویو اونو پاس دادی میتونی به این صورت 10 تا پست هر دسته رو نشون بدی
@foreach($categories as $category)
<h2>{{ $category->name }}</h2>
<ul>
@foreach($category->posts->take(10) as $post)
<li>{{ $post->title }}</li>
@endforeach
</ul>
@endforeach
خسته نباشی و دستت درد نکنه اما ....
در این حالت برای سورت کردن یا مرتب کردن(پست ها ) باید چیکار کرد ؟؟
sort کردن یا گزاشتن شرط هم به روشی که آقای سهرابی گفتند هست