2016-08-08 64 views
0

Es gibt viele übereinstimmende Anmeldeinformationen innerhalb der Tabelle, die in eine foreach Schleife eingefügt werden, aber ich bekomme die Ergebnisse nur vom ersten foreach Element. Wie könnte ich das beheben?Ergebnisse vom ersten Element von foreach erhalten

foreach($matches as $match) 
    { 
     $object = $match->object; 

     $sales->whereRaw("match (`object`) against (?)", array($object)); 

     if($match->colourBase == '1') 
     { 
      $sales->where('colour', '=', 'CC'); 
      $sales->orWhere('colour', '=', 'CC+DD'); 

      if($match->maxPrice) 
      { 
       $sales->where('price', '<=', $match->maxPrice); 
      } 

      if($match->minPrice) 
      { 
       $sales->where('price', '>=', $match->minPrice); 
      } 
     } 
    } 

    $results = $sales->orderBy('sales.updated_at', 'asc')->get(); 

@update

Dies ist, wie ich $ matches

$matches = Match::where('PeopleID', '=', $id)->get(); 
+0

warum verwenden Sie Match-> Farbe == 1 – coder

+0

@coder Sorry, ich habe einen Fehler gemacht, während Sie den Code zu bekommen. Es ist jetzt korrigiert. –

+0

Aktualisieren Sie Ihre Frage mit $ Übereinstimmungen Array – DsRaj

Antwort

0

Wenn Sie nur einen Datensatz wollen first() Funktion Gebrauch. Keine Notwendigkeit, foreach zu verwenden. :)

$matches = Match::where('PeopleID', '=', $id)->first();