我的 if 陳述句有問題,我嘗試根據平均評分顯示星級,例如,如果平均值為 4.8,則應顯示警告星級 4,但我嘗試 make 陳述句僅讀取第一個陳述句,以下是我的條件代碼:
@if($reviews->average('rating') >= '3')
@for($i=1;$i<4;$i )
@php echo $i ? "<i class='mdi mdi-star me-n1 text-warning'></i>" : "<i class='mdi mdi-star me-n1 text-light'></i>"; @endphp
@endfor
@elseif($reviews->average('rating') >= '4')
@for($i=1;$i<5;$i )
@php echo $i ? "<i class='mdi mdi-star me-n1 text-warning'></i>" : "<i class='mdi mdi-star me-n1 text-light'></i>"; @endphp
@endfor
@endif
請幫助我為什么我的第二個陳述句沒有被讀取,在這種情況下應該讀取第二個陳述句。誰可以幫助非常感謝。
uj5u.com熱心網友回復:
正如評論中所解釋的,問題在于 else if 邏輯。如果將比較器調整為<=而不是 ,則可以直接在 for 回圈中使用評論平均值<。這使得 if 陳述句有些過時。
@for($i=1;$i <= $reviews->average('rating');$i )
@php echo $i ? "<i class='mdi mdi-star me-n1 text-warning'></i>" : "<i class='mdi mdi-star me-n1 text-light'></i>"; @endphp
@endfor
如果平均值為 4.5,則回圈將執行 4 次。如果是 3,則執行 3 次。在 3.5 的情況下,它也執行 3 次。您可能需要為部分星號或四舍五入數字添加功能。否則顯示的星級和實際星級可能相差太大。例如,平均 3.9 將顯示為 3,但顯示 4 顆星會更直觀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/400833.html
