@hollanditkzn

Как отобразить в gridview данные из запроса?

Не могу все равно догнать как выводить данные из запроса или это делать в activeRecord или это в searchModel. У меня несколько gridview на разных action, и одна таблица заказов. Мне сейчас в одном action в gridview надо отобразить все данные по определенному статусу.
В чистом виде запрос будет вот таким SELECT * FROM `zakaz` WHERE `status` = 5
Я пробовал реализовать в yii в файле frontend\models\Zakaz
public function getDisain()
    {
        $disain = Zakaz::findAll([
            'status' => Zakaz::STATUS_DISAIN,
            ]);
    }

В контроллере frontend\controllers\ZakazController
public function actionDisain()
    {
        $searchModel = new ZakazSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        $disain = Zakaz::findOne('status');
        $disain = getDisain()->status;

        return $this->render('disain', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'disain' => $disain,
        ]);
    }

Как правильно построить код?
  • Вопрос задан
  • 264 просмотра
Решения вопроса 2
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Один gridview, один контроллер, одна модель, всё для заказов. Сортировка в girdview по статусам. Не надо кучу кода лепить!!!
Вывод заказов таблицей в представлении, которое подключается в действии, зовётся это действие index!!!
В контроллере должно быть так, и только так!!!
public function actionIndex()
    {
        $searchModel = new ZakazSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }

Всё, больше ничего не надо городить. Для статуса выпадающий список.
Блин!!!
Да сколько можно?!!
Читайте статьи по ссылкам, там всё это расписано до мелочей!!!
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Это без dataProvider и GridView
public function getDisain()
    {
        $disain = Zakaz::find()->andWhere(['status' => Zakaz::STATUS_DISAIN])->all();
    }


C dataProvider описал slo_nik
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы