SupportController.php
3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
/**
* Created by PhpStorm.
* User: stes
* Date: 14.06.18
* Time: 13:40
*/
namespace frontend\controllers;
use common\models\Book;
use common\models\Buy;
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,
]
);
}
}
}
public function actionBuy($book_id = null){
$model = new Buy([
'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('buy', [
'model' => $model,
'book' => $book
]);
}
}