رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ایجاد این کوئری
#1
سلام


من میخوام با یک سلکت از پست ها مقدار ده پست اخر هر دسته رو پیدا کنم .... سپس اون پست ها رو بر اساس دسته ها نشون بدم ...
جدول هم اینجوریه که هر پست یک دسته داره و ای دی دته رو توی هر پست اوردم و ریلیشن مورد نظر رو هم نوشتم ...

این کار شدنیه ؟
پاسخ
تشکر شده توسط:
#2
سلام
میتونید از همچین کدی استفاده کنید.
تو جدول دسته بندی ها یه سلکت بزن و دسته هایی رو که میخوای رو انتخاب کن بعد با جوین پست های مربوط به اونا رو دربیار.
کد:
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
پاسخ
تشکر شده توسط:
#3
نیاز به چنین کدی نیست از فریمورک استفاده می کنی تا وقتتو صرف نوشتن چنین کدهای 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
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط: masiha68
#4
خسته نباشی و دستت درد نکنه اما ....

در این حالت برای سورت کردن یا مرتب کردن(پست ها ) باید چیکار کرد ؟؟
پاسخ
تشکر شده توسط:
#5
اینو امتحان کنید (http://laravel.com/docs/5.1/eloquent-relationships Constraining Eager Loads)

$categories = Category::with(['posts' => function ($query) {
    $query->orderBy('created_at', 'desc');
}])->get();

یادگیری مداوم حداقل شرط لازم برای موفقیت در هر زمینه ای است که در آن فعالیت می کنید؛ هر روز چیز جدیدی بیاموزید.
پاسخ
تشکر شده توسط: hamo
#6
sort کردن یا گزاشتن شرط هم به روشی که آقای سهرابی گفتند هست
موفقیت، نتیجه تشخیص درست است؛ تشخیص درست، نتیجه تجربه است؛ تجربه نیز اغلب نتیجه تشخیص نادرست است.



پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 2 مهمان