راکت

روابط در دیتابیش

2 پاسخ

با سلام چطور میشه برای روابط شرط گذاشت؟مثلا بگی که هر کار کاربری که فیلد فروشندگیش ۱ بود چند تا محصول داره؟

ثبت پرسش جدید

پاسخ‌ها

2
saman
saman
@saman1111

سلام
با where

Users::where('field',1)->get();

اینطوری

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

یکی از روش هاش این هست که شما ابتدا با استفاده از where بیاید لیست کاربرها رو مطابق با شرطتون بگیرید و بعد مثلا با یک حلقه نتیجه مورد نیازتون رو در قالب یک آرایه تولید کنید. مثلا اینجوری:

$result = [];
$sellers = User::user->where('is_seller', 1)->get();
foreach($sellers as $seller) {
    $result [] = [
        'seller' => $seller,
        'products_count' => $seller->products()->count()
    ];
}

و یک روش شاید بهتر استفاده از conditional clauses در کوئری بیلدر هست. یعنی اینکه از دستور when() استفاده کنید و در آرگومان اول میاید یک شرط میذارید و اگر true بود تعداد محصولات اون فروشنده رو بر می‌گردونید. توضیحات و مثال بیشتر در لینک زیر از مستندات لاراول خدمت شما:
https://laravel.com/docs/7.x/queries#conditional-clauses

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

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

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