2016-02-09 12 views
8

मेरे पास दो मॉडल हैं जो पिवोट टेबल, User और Task से जुड़े हुए हैं।लार्वेल: अगर कोई पिवट तालिका रिकॉर्ड मौजूद है तो

मेरे पास user_id और task_id है।

यह जांचने का सबसे अच्छा तरीका क्या है कि उपयोगकर्ता और कार्य के इस संयोजन के लिए रिकॉर्ड मौजूद है या नहीं?

+3

मैं, उम्मीद है कि इस समाधान http://stackoverflow.com/questions/24555697/check-if-belongstomany-relation-exists-laravel –

उत्तर

13

आपके पास अपनी स्थिति के आधार पर कुछ विकल्प हैं।

आप पहले से ही एक User उदाहरण है और आप अगर यह एक निश्चित आईडी के साथ एक कार्य को देखने के लिए चाहते हैं, आप कर सकते हैं: अगर आप Task उदाहरण है और चाहते हैं कि

$user = User::find(1); 
$hasTask = $user->tasks()->where('id', $taskId)->exists(); 

आप इस रिवर्स कर सकते हैं एक उपयोगकर्ता के लिए जाँच:

$hasPivot = User::where('id', $userId)->whereHas('tasks', function ($q) use ($taskId) { 
     $q->where('id', $taskId); 
    }) 
    ->exists(); 
0:

$task = Task::find(1); 
$hasUser = $task->users()->where('id', $userId)->exists(); 

तुम सिर्फ आईडी है, तो प्रत्येक का एक उदाहरण के बिना, आप निम्न कर सकता है

+1

हो जाएगा यह स्वीकार जवाब – captainblack

+0

@patricus होना चाहिए लगता है आप मेरी मदद कर सकते हैं। इसे देखें: https://stackoverflow.com/questions/44519339/how-can-i-update-pivot-table-on-laravel –

2

क्या आप इसे खोज सकते हैं?

$users = User::has('task')->get(); 
-1

आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

$ उपयोगकर्ता = उपयोगकर्ता :: ढूंढें (1);

$ हैस्टस्क = $ उपयोगकर्ता-> कार्य() -> जहां ('task_id', $ taskId) -> मौजूद है();

संबंधित मुद्दे