如何使用Eloquent计算每个colume和显示

时间:2018-04-28 08:06:50

标签: laravel-5

我正在研究搜索。 我只能得到一个第一个结果。

表名是"颜色" 这是colum信息

id |  colorname 
-----------------
1      black     
2      pink
3      blue
4      pink
5      green

我想计算每个颜色名称'量 和显示列表。

这是我目前的代码

  public function search(Request $request)
    {

    $colors = Color::select('colorname', DB::raw('COUNT(colorname) count'))
    ->groupBy('colorname')
    ->get();

    $param = ['input' => $request->input, 'colors' =>$colors];
    return view('contacts.find', $param);
     }

刀片文件

    @if (isset($colors))
    <table>
    <tr>
       <td>{{$colors->getData()}}</td>
    </tr>
    </table>
</div>
    @endif

MODEL

class Color extends Model
{

public function getData()
    {
        return $this->color;
    }
}

2 个答案:

答案 0 :(得分:0)

您需要计算所有颜色,然后按名称对其进行分组:

SELECT COUNT(colorname), colorname FROM color
GROUP BY colorname;

这里有一个SQLFiddle:http://sqlfiddle.com/#!9/821d57/7/0

答案 1 :(得分:0)

使用此:

$colors = Color::select('colorname', DB::raw('COUNT(colorname) count'))
    ->groupBy('colorname')
    ->get();