حسین ترابی
10 ماه پیش توسط حسین ترابی مطرح شد
2 پاسخ

تبدیل SQL به Elequent

سلام دوستان
کی میدونه چطور میشه این کوئری که قبلا با SQL کار می کرده رو به الکوئنت تبدیلش کرد

SELECT categories.id, categories.name, (SELECT count(*) FROM posts WHERE categories.id = posts.category) as posts_count from categories ORDER BY posts_count DESC LIMIT 10


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 10 ماه پیش مطرح شد
1

سلام نیاز به مدل و این داستانا هست ولی به طور کلی بخوام راهنمایی کنم

$outPut=Category::withCount('posts')->orderBy('posts_count','desc')->take(10)->get()

اول تست بکنش بعد پایینی رو اجرا کن مجدد

$outPut=Category::withCount('posts')->orderBy('posts_count','desc')->take(10)->get('id','name','posts_count')

اصولش اینه باید کار کنه دیگه البته در صورتی که توی مدل های مربوطه روابط رو درست پیاده کرده باشی


حسین ترابی
@hoseintorabi 10 ماه پیش آپدیت شد
0

با این روش زدم به نظر جواب داد



            ->selectRaw('category, count(*) as count')
            ->groupBy('category');
        $c = Category::query()
            ->joinSub($postforcount, 'posts', 'posts.category', '=', 'categories.id')
            ->selectRaw('categories.*, posts.count')->orderBy('count','desc')
            ->get()->toArray(); ```

ولی به نظرم اونی که نوشتی هم باید کار کنه

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

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