使用:帶有 Yajra 資料表的 Laravel 8。
我想根據案例型別在列中顯示顏色!
目前我正在這樣做:
@switch($report->caseType)
@case($report->caseType == 'Death')
@case($report->caseType == 'Theft')
<span class="alert-danger p-7">High</span>
@break
@case($report->caseType == 'Bad behavior')
<span class="alert-warning p-7">Medium</span>
@break
@default
@endswitch
將有很多案例添加到此代碼中(20 多個案例),有沒有辦法重構它/代碼行數更少?
uj5u.com熱心網友回復:
創建一個關聯陣列并將其存盤在配置中
$caseType=['Death'=>'High','Theft'=>'High','Bad behavior'=>'Medium'];
所以你可以做以下
<span class="alert-danger p-7">{{$caseType[$report->caseType]}}</span>
uj5u.com熱心網友回復:
為什么不只宣告一個以 caseTypes 作為鍵的陣列呢?您可以通過控制器傳遞它。
$testArray[
'Death' => [
'color' => 'danger',
'text' => 'High'
'Theft' => [
'color' => 'danger',
'text' => 'High'
],
'Bad behavior' => [
'color' => 'warning',
'text' => 'Medium'
],
'Other cases' => [
'color' => 'other colors',
'text' => 'text'
]
];
所以在你的刀片中你可以這樣做:
@foreach ($report->caseTypes as $caseType)
<span class="alert-{{ $testArray[$caseType]['color'] }}p-7">{{ $testArray[$caseType]['text'] }}</span>
@endforeach
uj5u.com熱心網友回復:
您可以將開關案例重構為使用陣列。
- 創建所有案例的關聯陣列,其中鍵作為案例,值作為顏色代碼。
$cases = [
'Death' => 'danger',
'BadBehaviour' => 'warning',
'Theft' => 'info',
'Life' => 'success'
];
- 那么在你看來
<span >High</span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452469.html
