मेरे पास उत्पादों की एक सूची है, और वेबसाइटों की एक सूची है। प्रत्येक वेबसाइट पर कई उत्पाद हो सकते हैं, और प्रत्येक उत्पाद कई वेबसाइटों पर हो सकता है।

मैं हर एक उत्पाद को किसी विशेष वेबसाइट पर खोजना चाहता हूं जो किसी अन्य वेबसाइट पर नहीं है, अनिवार्य रूप से उस वेबसाइट के लिए अद्वितीय है।

एकमात्र समाधान जिसके बारे में मैं सोच सकता हूं, वह है हर उत्पाद पर पुनरावृति करना, फिर उसकी प्रत्येक वेबसाइट पर यह जांचने के लिए कि क्या उनके पास सही URL है।

यह काम करता है, लेकिन मुझे लगता है कि इसे पूरा करने का एक बेहतर तरीका होगा। क्या किसी के पास कोई विचार है?

0
Jayleaf 5 जून 2018, 09:00

2 जवाब

सबसे बढ़िया उत्तर

यदि आप वेबसाइट के साथ वेबसाइट के लिए अद्वितीय उत्पादों को लोड करना चाहते हैं तो आप कुछ ऐसा कर सकते हैं:

Website::with(['products' => function ($query) {
    $query->has('websites', 1);
}])->find($id);

अन्यथा, यदि आप पहले ही आपको $website लोड कर चुके हैं, तो आप कुछ ऐसा कर सकते हैं:

$uniqueProducts = $website->products()->has('websites', 1)->get();

वाक्पटु - है () विधि

उत्सुक भार को रोकना

0
Rwd 5 जून 2018, 09:36

यदि आप वाक्पटु संबंध का उपयोग करते हैं, तो आप इस तरह अपनी समस्या का समाधान कर सकते हैं:

$posts = App\Product::has('websites', '=', 1)->get();

देखें: https://laravel.com/docs/5.6/eloquent- संबंध#प्रश्न-संबंध-अस्तित्व

0
vietanhyt 5 जून 2018, 09:25