簡體   English   中英

如何四舍五入所有評級,但如果它是 null 或 laravel 為空,則忽略它?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM