EventController.php 1.83 KB
<?php

namespace frontend\controllers;

use Yii;
use common\models\Event;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\data\ActiveDataProvider;



class EventController extends Controller
{

    public function actionMain()
    {

        $dataProvider = new ActiveDataProvider([
            'query' => Event::find()->where(['is_event'=>true]) ]);

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



    public function actionShow($alias)
    {

        $model = $this->findModel($alias);
        $productProvider = new ActiveDataProvider([
            'query' => $model->getProducts()->with([
                'images',
                'events',
                'variant',
                'variant.image',
                'comments',
                'averageRating',
            ]),
        ]);

        return $this->render('show', [
            'productProvider' => $productProvider,
            'model' => $model,
        ]);
    }

    public function actionSale($percent)
    {

        $model = Event::find()->where(['percent'=>$percent, 'sale'=>true])->one();

        $productProvider = new ActiveDataProvider([
            'query' => $model->getProducts()->with([
                'images',
                'events',
                'variant',
                'variant.image',
                'comments',
                'averageRating',
            ]),
        ]);

        return $this->render('show', [
            'productProvider' => $productProvider,
            'model' => $model,
        ]);
    }

    protected function findModel($alias)
    {
        if (($model = Event::findOne(["alias"=>$alias,'is_event' => true])) !== null) {
            return $model;
        } else {
            throw new NotFoundHttpException('The requested page does not exist.');
        }
    }


}