@Leffken
Студент, как студент!

Как в yii сделать сортировку по несуществующему полю?

Нужно сделать сортировку в gridView, но такого поля ни где нет. Данный столбец отображает статус заказа, если в связной таблице нет нужной записи, то статус ожидание, если есть, то статус обработано. Нужно это для того, чтобы необработанные заказы находились вверху таблицы GridView, а остальные сортировались по дате.
  • Вопрос задан
  • 424 просмотра
Пригласить эксперта
Ответы на вопрос 1
Demetriy
@Demetriy
веб и мобильная разработка
По-идее, добавляете в модель публичное свойство, аля public $some_status, дальше в выборке в это свойство пишете ваши вычисляемые значения и дальше можете по нему сортировать.

Вот пример продвинутого запроса:
$query = ModelName::find()
            ->select([
                'outcome_planned.*',
                'COALESCE(SUM(outcome.value), 0) AS public_field_name'
            ])
            ->with('user')
            ->joinWith(['outcomes'])
            ->groupBy('outcome_planned.id')
            ->orderBy(['outcome_planned.date' => SORT_DESC]);

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 100,
            ],
            'sort' => false
        ]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы