Понимаю что из вопроса не понятно что я хочу, не смог сформулировать.
И так, есть сортировка в конроллере.
public function actionIndex()
{
$server_list_earli = Listserver::find()->orderBy(['status'=> SORT_ASC, 'date' => SORT_ASC])->all();
return $this->render
('index',['list_earlier' => $server_list_earli]);
}
в index.php имеется foreach и в нём условия.
<div class="box__list box__solar">
<?php $showed = false; ?>
<?php foreach($list_earlier as $list):?>
<?php
if ( $list->date_start < date("Y-m-d") && $list->date_end > date("Y-m-d") ) {
$status = $list->status;
}else {
$status = 'simple__content__section'';
}
if ( $status == 'content__section' ) {
$icon_star = $a;
$priority = 1;
$icon_round = $list->icon_item;
}else if ( $status == 'midle__content__section' ) {
$icon_star = $b;
$priority = 2;
$icon_round = $list->icon_item;
}else if ( $status == 'under__content__section' ) {
$icon_star = $c;
$priority = 3;
$icon_round = $list->icon_item;
}else if ( $status == 'simpler__content__section'' ) {
$icon_star = ' ';
$priority = 5;
$icon_round = ' ';
}
?>
<?php if ($list->date >= date('Y-m-d')): ?>
<?php if ($priority < 3): ?>
<?php if(!$showed){echo '<div class="box__headline heading__hight"><h3>Заголовок<span class="title__line"></span>Сервера <i class="fa fa-usd" aria-hidden="true"></i></h3></div>';$showed = true;} ?>
<div class="box__span <?= $status ?>">
<span class="b__link__item item__icon"><?= $icon_star ?></span>
<span class="b__link__item item__name"><?= $list->name ?></span>
<span class="b__link__item item__bonus"><?= $icon_round?></span>
<span class="b__link__item item__date"><?= Yii::$app->formatter->asDate($list->date) ?></span>
</div>
<?php endif; ?>
<?php endif; ?>
<?php endforeach;?>
</div>
</div>
идея всего этого безобразия была такова(не судите строго изучаю недавно и с урывками в последнее время, любитель я и не зарабатываю на этом). Что всё цеплял к данному $status = $list->status; статусу через базу задана начальная дата и окончание, если дата окончилось то $status = 'simple__content__section''; и соответственно всё автоматом спадает (иконки, css класс и тд), но при этом я могу изменять через бд всё что мне надо....
Всё работает как часы (правда я более чем уверен что так код не пишется и есть какое либо решении поудобней). Но есть маленькое но, таких переборов массива несколько меняется лишь условие с датой и переменной.
<?php if ($list->date >= date('Y-m-d')): ?>
<?php if ($priority < 3): ?>
Я к сожалению вынужден множественные условия повторять в каждом переборе а их у меня 5.
Мои личные попытки сводились к тому что, переменная равна значению из бд и в не перебора я не смог применить.
Вопрос таков, как возможно избежать данного повторения, буду очень признателен если поделитесь ссылкой куда мне такому не опытному пройтись.