SupportController.php 2.66 KB
<?php
    /**
     * Created by PhpStorm.
     * User: stes
     * Date: 14.06.18
     * Time: 13:40
     */
    
    namespace frontend\controllers;
    
    use common\models\Book;
    use common\models\Support;
    use frontend\helpers\Url;
    use frontend\models\SearchModel;
    use yii\data\ActiveDataProvider;
    use yii\web\Controller;

    class SupportController extends Controller
    {
        public function actionIndex($book_id = null){
            $model = new Support([
                'book_id' => $book_id,
                'status'  => 0
                                 ]);
            $book = Book::find()->with('author')->where(['id' => $book_id])->one();
            if ($model->load(\Yii::$app->request->post()) and $model->save()){
                \Yii::$app->session->setFlash('success', 'Дякуємо за ваш запит. Найближчим часом, наш менеджер зв\'яжеться з Вами для уточнення деталей');
                return $this->redirect(['site/index']);
            }
            return $this->render('index', [
                'model' => $model,
                'book' => $book
            ]);
        }
        public function actionSearch(){
            return $this->render('search');
        }
        
        public function actionSearchResult()
        {
            $model = new SearchModel();
            if ($model->load(\Yii::$app->request->post())){
                $booksIds = $model->search();
                if (count($booksIds) == 1){
                   return $this->redirect(Url::to(['support/index', 'book_id' => $booksIds[0]]));
                }else{
                    $dataProvider = new ActiveDataProvider(
                        [
                            'query'      => Book::find()
                                                ->with(
                                                    [
                                                        'author',
                                                        'alias',
                                                    ]
                                                )
                                                ->where([ 'status' => Book::STATUS_ACTIVE ])->andWhere(['book.id' => $booksIds]),
                            'pagination' => [
                                'pageSize' => 10,
                            ],
                        ]
                    );
                    return $this->render(
                        'search-result',
                        [
                            'dataProvider' => $dataProvider,
                        ]
                    );
                }
            }
        }
    }