2017-08-09 3 views
1

Ich habe ein Problem mit der Gruppierung von Datensätzen basierend auf ihrem Namen der Farbe. Hier möchte ich mit einem Beispiel erklären. Ich habe "BLUE JEAN (3)" mit der Menge 3 & "BLUE JEANS MET (7)" mit der Menge 7, können wir zusammen gruppieren? Ich möchte die Ausgabe BLUE JEAN (10).Wie gruppiert man ähnliche Datensätze in Laravel?

Hinweis: Diese sind bereits in einer Datenbank mit unterschiedlicher ID verteilt. Ich habe viele Farben, deshalb muss ich nur die gleichen Farben gruppieren und für die Suche füllen.

Hier ist meine Struktur der Codierung:

Modell:

class MyVehicle extends Model 
{ 
    protected $fillable = [ 
     'name', 
     'color_id', 
     'stock_number' 
    ]; 
} 

Controller:

public function searchVehicleColor() 
{ 
    $vehicles_colors = DB::table('vehicles') 
     ->select(DB::raw('COUNT(vehicles.color_id) as color_count'), 'colors.color') 
     ->leftjoin('colors', 'colors.id', '=', 'vehicles.color_id')->get(); 

    return view('public/search_result', compact('vehicles_colors')); 
} 

Ausblick:

@foreach($vehicles_colors as $vehicles_color) 
    <li> 
     {{ Form::checkbox('color[]', $vehicles_color->color, null, ['class' => 'color field','id'=>$vehicles_series_color->color,'onClick'=>'reply_click(this.id)']) }} 
     <label for="{{$vehicles_color->color}}">{{$vehicles_color->color}}({{$vehicles_color->color_count}})</label> 
     <div class="check"></div> 
    </li> 
@endforeach 

Hier ist die Ausgabe, ich will nur Hochglanz zusammenführen d Daten. enter image description here

Bitte helfen, Vielen Dank im Voraus.

+0

Können Sie bitte genauer sein? Was für ein Objekt sind "BLUE JEAN (3)" und "BLUE JEANS MET (7)"? – louisfischer

+1

Es wäre besser, wenn Sie Modelle und DB-Struktur in Ihrer Frage hinzufügen. – Laerte

+0

Hallo @louisfischer danke für deine schnelle Antwort, Das sind die Datensätze, die ich in der Datenbanktabelle hinzugefügt habe und die alle im Frontend anzeigen müssen, aber ähnliche Daten wiederholen sich wegen der unterschiedlichen Benennung. Hier habe ich eine Art "BLUE JEAN", "BLUE JEANS MET" und "BLUE JEANS". Dies sind die ähnlichen Daten, also möchte ich sie zusammenstellen, um anzuzeigen und auch die Gesamtzahl der Elemente zu zählen. – Odhikari

Antwort

1
public function searchVehicleColor(){ 
$vehicles_colors = DB::table('vehicles') 
->select(DB::raw('COUNT(vehicles.color_id) as color_count'),'colors.color') 
->leftjoin('colors', 'colors.id', '=','vehicles.color_id')->groupBy('name')->get(); 

return Ansicht ('public/SEARCH_RESULT', kompakt ('vehicles_colors')); }

+0

Hallo @Kuldeep, es wird nicht funktionieren für mich Ich habe nicht genau den gleichen Namen der Farbe. Aber ich habe den ähnlichen Namen wie "Blue Jean" und "Blue Jeans Met" – Odhikari

+0

Dann müssen Sie den gleichen Namen verwenden, wenn Sie andere Lösung verwenden möchten wie in Ihnen –

+0

danke für Ihren Vorschlag. Ich schätze es :) – Odhikari

Verwandte Themen