2017-08-09 46 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

相关问题