Где правильней указать условие? Через GET параметр передается условие по которому нужно фильтровать значение. Эти значения очищаются и сохраняются в модель, затем происходит получение данных используя эти условия.
Где правильно указать условия(status, ko_from), в отдельных методах или оставить так?
Метод модели:public function getActiveTransfers() {
$criteria = new CDbCriteria();
$criteria->with = ['good', 'koFrom', 'koTo'];
$criteria->condition .= 'status <> '.self::STATUS_RECD;
if($this->status)
$criteria->condition .= ' AND status ='.$this->status;
if($this->ko_from)
$criteria->condition .= ' AND ko_from ='.$this->ko_from;
return $this->getCActiveDataProvider($criteria);
}

21 Авг 2019 в 07:03
113 +1
0
Ответы
1

В данном случае правильнее будет оставить условия в отдельных методах, чтобы код был более читаемым и поддерживаемым. Можно создать отдельные методы для проверки условий status и ko_from, например:

public function getActiveTransfers() {
$criteria = new CDbCriteria();
$criteria->with = ['good', 'koFrom', 'koTo'];
$criteria->condition .= 'status <> ' . self::STATUS_RECD;
if ($this->status) {
$criteria->condition .= $this->getStatusCondition();
}
if ($this->ko_from) {
$criteria->condition .= $this->getKoFromCondition();
}
return $this->getCActiveDataProvider($criteria);
}
public function getStatusCondition() {
return ' AND status =' . $this->status;
}
public function getKoFromCondition() {
return ' AND ko_from =' . $this->ko_from;
}

Это делает код более читаемым и структурированным, а также позволяет легче добавлять и изменять условия в будущем.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир