如何在Laravel中对类似记录进行分组?

时间:2017-08-09 12:08:40

标签: laravel laravel-5.4

我在根据颜色名称对记录进行分组时遇到问题。在这里,我想用一个例子来解释。我有“BLUE JEAN(3)”,数量为3&数量为7的“蓝色牛仔裤(7)”,我们可以组合在一起吗?我想要输出BLUE JEAN(10)。

注意:这些已经分布在具有不同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

这是输出,我只想合并突出显示的数据。 enter image description here

请帮助,提前致谢。

1 个答案:

答案 0 :(得分: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();

返回视图('public / search_result',compact('vehicles_colors'));     }