2017-08-09 45 views
1

我有一個基於顏色名稱對記錄進行分組的問題。在這裏我想用一個例子來解釋。數量爲3的「BLUE JEAN(3)」數量爲3 &「BLUE JEANS MET(7)」,我們可以一起組合嗎?我想要輸出BLUE JEAN(10)。如何在Laravel中對相似的記錄進行分組?

注意:這些已經分佈在具有不同ID的數據庫中。我有很多顏色,所以我只需要將這些相似的顏色分組,並且需要填充以進行搜索。

這裏是我的編碼結構:

型號:

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

控制器:

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')); 
} 

查看:

@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 

這裏是輸出的,我只是想合併highlighte d數據。 enter image description here

請幫忙,提前致謝。

+0

你能更精確嗎? 「BLUE JEAN(3)」和「BLUE JEANS MET(7)」是什麼樣的對象? – louisfischer

+1

如果您在問題中添加模型和數據庫結構會更好。 – Laerte

+0

感謝您的快速回復,您好@louisfischer, 這些是我在數據庫表中添加的記錄,必須在前端顯示所有記錄,但由於命名不同,類似的數據會重複。 在這裏,我有一些「藍色的JEAN」,「藍色的牛仔褲MET」和「藍色的牛仔褲」。這些是類似的數據,所以我想把它們放在一起顯示,並且還想要統計項目的總數。 – Odhikari

回答

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(); 

返回視圖( '公共/ search_result',緊湊( 'vehicles_colors')); }

+0

你好@Kuldeep,它不適用於我我沒有完全相同的顏色名稱。但我有類似的名稱,如「藍色牛仔」和「藍色牛仔褲會見」 – Odhikari

+0

然後,你必須使用相同的名稱,如果你想其他解決方案使用像你在查詢 –

+0

謝謝你的建議。我很感激 :) – Odhikari

相關問題