[英]How can I round off all the rating, but ignore it if it is null or empty in laravel?
如果它的 null 或 0,我如何四舍五入所有評級但忽略它?
下面是我的代碼:
$star = $ratings->count() > 0 ?
round($ratings->sum('rating') / $ratings->count(), 2) :
'No rating yet';
嘗試這個:
$star = count($ratings) > 0 ? round($ratings->sum('rating') / $ratings->count(), 2) :'No rating yet';
或者:
public $star='No rating yet';
if($ratings){
$star = count($ratings) > 0 ? round($ratings->sum('rating') / $ratings->count(), 2) :'No rating yet';
}
您可以使用以下代碼實現此目的
$star = $ratings->count() > 0 ? (empty($ratings->sum('rating'))?$ratings->sum('rating'): round($ratings->sum('rating') / $ratings->count(), 2)) : 'No rating yet';
如果你 go 我會推薦這個檢查 Eloquent 使用下面的代碼
$model = Model::avg('rating');
$star = is_null($model->rating)?'No rating yet': round($model->rating,2);
以上將是內存優化的。 正如您所做的那樣,它將從數據庫中獲取所有記錄並加載到 memory 中。 如果您只想顯示平均值,則僅從數據庫中獲取平均值更 memory 優化,稍后將提高性能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.