راکت
حل شده

eloquent ستون price رو توی جدول orders پیدا نمیکنه

2 پاسخ

سلام دوستان
من یه کد eloquent دارم که ارور میده و نمیتونه ستون price رو پیدا کنه

$customers = Customer::with('orders')
            ->orderBy('price')
            ->groupBy('first_name')
            ->get(['id', 'first_name', 'last_name', DB::raw('SUM(orders.price) AS price',)]);

در اصل من eloquent این SQL رو میخوام

SELECT customers.first_name, SUM(orders.price) orders_price 
FROM customers  
INNER JOIN orders ON customers.id = orders.customer_id 
GROUP BY first_name 
ORDER BY orders_price DESC;

ولی کد eloquent ای که دارم این SQL رو بر میگردونه

select `id`, `first_name`, `last_name`, SUM(orders.price) AS price from `customers` group by `first_name` order by `price` asc

ممنون میشم کمکم کنید.

ثبت پرسش جدید

پاسخ‌ها

2
سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

بهترین پاسخ

با سلام.
این کوئری که دارید کلا جوین داخلش نداره و خیلی از چیزی که میخواین دور هست :) اما پیشنهاد میکنم سرچ در گوگل و سایت های بخصوص خارجی فراموشتون نشه. همین فرایند های یادگیری و آزمون و خطایی که طی پروسه سرچ زدن ازش عبور میکنید واستون کلی اطلاعات جدید و دانش جدید بهمراه خواهد داشت.
با اینحال کوئری شمارو من نوشتم اما ممکنه کم و کاستی هایی داشته باشه چون جداولتون در دسترس من نیست.

return DB::table('customers')
            ->join('orders' , 'customers.id' , '=' , 'orders.customer_id')
            ->select('customers.first_name' , DB::raw('sum(comments.user_id) as orders_price'))
            ->groupBy('customers.first_name')
            ->orderByDesc('orders_price')
            ->get();

گرچه اینکار به نظر خودم کاملا اشتباهه و باعث جلوگیری از پیشرفت افراد میشه :) در واقع باید سعی کنیم به همدیگه ماهیگیری یاد بدیم نه اینکه فقط ماهی بگیریم ... ( اینکه کد آماده در اختیار افراد گذاشته بشه از نظر من قاتل استعداد و خلاقیت هست )
امیدوارم منظور من رو اشتباه متوجه نشید. فقط تجربه خودم رو در اختیارتون گذاشتم . با آرزوی پیشرفت شما 😎 موفق باشید

محمدرضا فلکی
محمدرضا فلکی
@m.reza6920

تخصص: Learning Laravel

خیلی خیلی خیلی ممنون @SobhanDadkhah عزیز

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

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

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