Sur php, je pourrais utiliser ce code pour obtenir combien d'articles sur mes marchandises db
function show(Request $request){ $c = DB::select("SELECT count(*) as total FROM goods"); if($c > 0 ): a ? b; }
puis-je faire ça sur laravel? si j'utilise ce code sur mon contrôleur
$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
il recevrait un message d'erreur car il renverrait JSON à l'intérieur du tableau. Y a-t-il une meilleure façon de faire cela? Ou comment obtenir ce total à partir de $ c à l'intérieur du contrôleur
4 Réponses :
a utilisé la méthode de Agrégats count
$count = DB::table('goods')->count(); if($count > 0) { //more than one raw }else { //zero raw }
c'est beaucoup plus propre avec l'éloquent
$c=goods::where('value',$val)->get()->count();
puisque ce qui précède va extraire toute la collection et compter, le moyen le plus efficace est
$c=goods::all()->count();
Cela récupérera tous les marchandises
et comptera collection
, pas bon, s'il y a des millions d'enregistrements.
Je sais que ce n'est pas une bonne pratique mais en regardant son code, il va chercher tous les enregistrements
Vous pouvez utiliser la fonction count ()
comme ceci:
$count = Good::all()->count();
Vous pouvez également utiliser Laravel Eloquent sur un modèle Bon comme ceci:
$count = DB::table('goods')->count();
$count = DB::table('goods')->count(); Please refer link