在Laravel上对数据库中的数据进行计数

时间:2019-01-29 06:42:42

标签: laravel query-builder laravel-5.7 laravel-controller

在php上,我可以使用此代码获取我的商品数据库上的商品

$total = 0;
$sql = "select count(*) as total from goods";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $total = $row['total'];
    }
}
echo $total;
// example return 5

我可以在laravel上这样做吗?如果我在控制器上使用此代码

function show(Request $request){
    $c = DB::select("SELECT count(*) as total FROM goods");
    if($c > 0 ): a ? b;
}

它将得到错误消息,因为它将在数组内返回JSON。有什么更好的方法吗?或者如何从控制器中的$ c中获得总计

4 个答案:

答案 0 :(得分:1)

使用过的laravel Aggregates方法count方法

$count = DB::table('goods')->count();

if($count > 0) {
     //more than one raw
}else {
     //zero raw
}

答案 1 :(得分:1)

您可以像这样使用count()函数:

$count = DB::table('goods')->count();

您也可以在 Good 模型上使用Laravel Eloquent,例如:

$count = Good::all()->count();

答案 2 :(得分:0)

口气更干净

$c=goods::all()->count();

由于上述操作将拉动所有收集和计数,所以更有效的方法是

$c=goods::where('value',$val)->get()->count();

答案 3 :(得分:0)

$count = DB::table('goods')->count();

请参阅link