راکت
حل شده

تبدیل SQL به Elequent

2 پاسخ

سلام دوستان
کی میدونه چطور میشه این کوئری که قبلا با 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

ثبت پرسش جدید

پاسخ‌ها

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

تخصص: Full Stack Developer

بهترین پاسخ

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

$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

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



            ->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(); ```

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

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

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

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