Я пытаюсь исправить панель инструментов, где у меня есть несколько виджетов, показывающих мне, сколько билетов у меня уже есть, но фильтруется по столбцу с именем status
(статус - строка типа в ожидании , преобразовал , остановлено и т. д.) в таблицу с именем chamados
.
Я попытался поместить множество комбинаций ->where('status', 'like', '%finished')
во многие части этого кода,но не имеют успеха. Может ли кто-нибудь помочь мне показать мне, как фильтровать такую информацию?
Это код в контроллере:
$settings5 = [
'chart_title' => 'Chamados pendentes',
'chart_type' => 'number_block',
'report_type' => 'group_by_date',
'model' => 'App\\Chamado',
'group_by_field' => 'prazo',
'group_by_period' => 'day',
'aggregate_function' => 'count',
'filter_field' => 'created_at',
'group_by_field_format' => 'd-m-Y H:i:s',
'column_class' => 'col-md-3',
'entries_number' => '5',
];
$settings5['total_number'] = 0;
if (class_exists($settings5['model'])) {
$settings5['total_number'] = $settings5['model']::when(isset($settings5['filter_field']), function ($query) use ($settings5) {
if (isset($settings5['filter_days'])) {
return $query->where($settings5['filter_field'], '>=', now()->subDays($settings5['filter_days'])->format('Y-m-d'));
} elseif (isset($settings5['filter_period'])) {
switch ($settings5['filter_period']) {
case 'week':
$start = date('Y-m-d', strtotime('last Monday'));
break;
case 'month':
$start = date('Y-m') . '-01';
break;
case 'year':
$start = date('Y') . '-01-01';
break;
}
if (isset($start)) {
return $query->where($settings5['filter_field'], '>=', $start);
}
}
})
->{$settings5['aggregate_function'] ?? 'count'}($settings5['aggregate_field'] ?? '*');
}
Это мой взгляд:
<div class="{{ $settings5['column_class'] }}">
<div class="info-box">
<span class="info-box-icon bg-yellow" style="display:flex; flex-direction: column; justify-content: center;">
<i class="fa fa-question-circle-o"></i>
</span>
<div class="info-box-content">
<span class="info-box-text">{{ $settings5['chart_title'] }}</span>
<span class="info-box-number">{{ number_format($settings5['total_number']) }}</span>
</div>
</div>
</div>
ВВ этом примере я должен показать количество билетов "Pendentes" (в ожидании на португальском языке). Может кто-нибудь объяснить мне, что я делаю неправильно и как это сделать?