2017-05-31 4 views
0

Ich versuche, um eine Bedingung zu machen und prüfen, ob die activite_licencie_id in andere sind, wenn die ID aus dem bei Zustand unterscheidet esZustand, in dem Id Eloquent

Eigentlich falsch ist jedoch die ID i von activite_licencie_id bekomme ich „gut“ erhalten, so Die Bedingung funktioniert nicht, weil etwas ich die id = 2 auswähle, die nicht in den IDs von whereIn Bedingung ist. jemand weiß, wie ich das erreichen könnte? Vielen Dank im Voraus

$activite_licencie_id = $request->activite_licencie_id; // id = 2 
if (ActiviteLicencie::where('id' , $activite_licencie_id)->whereIn('id' , [1 , 14 , 15 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 29 , 30 , 31 , 32 , 33 , 34 , 36 , 51]) == true){ 
    $good ='good'; 
    dd($good); 
}else{ 
    $bad = 'bad'; 
    dd($bad); 
} 
+0

Was ist der Zweck der Abfrage der Tabelle, wenn Sie Ihre Ergebnisse auf der zweiten whereIn Bedingung erzwingen? Überprüfen Sie, ob das zweite Array die Lizenz-ID enthält. – Sandeesh

Antwort

1

Wenn Sie bereits sicher sind, dass die Modell-IDs Sie auf die whereIn Klausel vorbei sind vorhanden, warum dann nicht nur in_array benutzen?

$activite_licencie_id = $request->activite_licencie_id; 
$ids = [1 , 14 , 15 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 29 , 30 , 31 , 32 , 33 , 34 , 36 , 51]; 

if (in_array($activite_licencie_id, $ids)) { 
    dd('good'); 
} else { 
    dd('bad'); 
} 
+0

arbeiten !!!!! Du arbeitet !!! Danke vielmals !!! –

1

Anstatt auf true zu vergleichen, sollten Sie die count() des Ergebnisses vergleichen.

ändern == true zu ->count() >= 0

$activite_licencie_id = $request->activite_licencie_id; // id = 2 



    if (ActiviteLicencie::where('id' , $activite_licencie_id)->whereIn('id' , [1 , 14 , 15 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 29 , 30 , 31 , 32 , 33 , 34 , 36 , 51])->count() >=0){ 

     $good ='good'; 
     dd($good); 
    }else{ 

     $bad = 'bad'; 
     dd($bad); 
    } 
+0

vielen Dank für Ihre Hilfe –