Подсчитать данные из базы данных на Laravel - PullRequest
0 голосов
/ 29 января 2019

На 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 внутри контроллера

Ответы [ 3 ]

0 голосов
/ 29 января 2019

намного чище с красноречивым

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

, так как вышеперечисленное потянет всю коллекцию и счет, более эффективный способ -

$c=goods::where('value',$val)->get()->count();
0 голосов
/ 29 января 2019

Вы можете использовать функцию count() следующим образом:

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

Вы также можете использовать Laravel Eloquent на Хорошей модели, подобной этой:

$count = Good::all()->count();
0 голосов
/ 29 января 2019

использованный Laravel Агрегаты методы count метод

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

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