Commit f53044e7d36193fa2216df9e07edcfe3f30fe121
1 parent
d73fd852
123
Showing
5 changed files
with
51 additions
and
6 deletions
Show diff stats
common/models/Question.php
common/models/Service.php
| ... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 | |
| 3 | 3 | namespace common\models; |
| 4 | 4 | |
| 5 | +use artbox\core\models\Alias; | |
| 5 | 6 | use artbox\core\models\Image; |
| 6 | 7 | use artbox\core\models\traits\AliasableTrait; |
| 7 | 8 | use backend\behaviors\LevelBehavior; |
| ... | ... | @@ -161,4 +162,6 @@ class Service extends ActiveRecord |
| 161 | 162 | public function getQuestions(){ |
| 162 | 163 | return $this->hasMany(Question::className(), ['service_id' => 'id']); |
| 163 | 164 | } |
| 165 | + | |
| 166 | + | |
| 164 | 167 | } | ... | ... |
common/models/ServiceLang.php
| ... | ... | @@ -5,7 +5,8 @@ |
| 5 | 5 | use artbox\core\models\Alias; |
| 6 | 6 | use artbox\core\models\Language; |
| 7 | 7 | use Yii; |
| 8 | - | |
| 8 | + use yii\helpers\Json; | |
| 9 | + | |
| 9 | 10 | /** |
| 10 | 11 | * This is the model class for table "service_lang". |
| 11 | 12 | * |
| ... | ... | @@ -132,4 +133,10 @@ |
| 132 | 133 | { |
| 133 | 134 | return $this->hasOne(Service::className(), [ 'id' => 'service_id' ]); |
| 134 | 135 | } |
| 136 | + | |
| 137 | + public function getQuestionAlias(){ | |
| 138 | + return $this->hasOne(Alias::className(), []) | |
| 139 | + ->where(['route' => Json::encode(['site\questions', 'service_id' => $this->service_id])]) | |
| 140 | + ->andWhere(['language_id' => $this->language_id]); | |
| 141 | + } | |
| 135 | 142 | } | ... | ... |
frontend/controllers/SiteController.php
| 1 | 1 | <?php |
| 2 | 2 | namespace frontend\controllers; |
| 3 | 3 | |
| 4 | + use artbox\core\models\Alias; | |
| 4 | 5 | use artbox\core\models\Feedback; |
| 6 | + use artbox\core\models\Language; | |
| 5 | 7 | use common\models\Comment; |
| 6 | 8 | use common\models\Package; |
| 7 | 9 | use common\models\Question; |
| ... | ... | @@ -17,6 +19,7 @@ |
| 17 | 19 | use yii\web\BadRequestHttpException; |
| 18 | 20 | use yii\web\Controller; |
| 19 | 21 | use yii\web\Response; |
| 22 | + use yii\helpers\VarDumper as d; | |
| 20 | 23 | |
| 21 | 24 | /** |
| 22 | 25 | * Site controller |
| ... | ... | @@ -224,6 +227,7 @@ |
| 224 | 227 | } |
| 225 | 228 | |
| 226 | 229 | public function actionQuestions($service_id = null){ |
| 230 | + Language::getCurrent(); | |
| 227 | 231 | |
| 228 | 232 | if (\Yii::$app->request->isAjax){ |
| 229 | 233 | Yii::$app->response->format = Response::FORMAT_JSON; |
| ... | ... | @@ -247,12 +251,17 @@ |
| 247 | 251 | 'pageSize' => 10, |
| 248 | 252 | ], |
| 249 | 253 | ]); |
| 250 | - $services = Service::find()->where(['status' => true])->andWhere(['parent_id' => null])->all(); | |
| 251 | - | |
| 254 | + $services = Service::find()->with('language.questionAlias')->where(['status' => true])->andWhere(['parent_id' => null])->all(); | |
| 255 | + # d::dump($services[3]->id,10,1); | |
| 256 | + #d::dump($dataTest,10,1); | |
| 257 | + #die; | |
| 258 | + | |
| 259 | + | |
| 252 | 260 | return $this->render('questions', [ |
| 253 | 261 | 'dataProvider' => $dataProvider, |
| 254 | 262 | 'services' => $services, |
| 255 | - 'service_id' => $service_id | |
| 263 | + 'service_id' => $service_id, | |
| 264 | + | |
| 256 | 265 | ]); |
| 257 | 266 | } |
| 258 | 267 | ... | ... |
frontend/views/site/questions.php
| ... | ... | @@ -12,7 +12,10 @@ |
| 12 | 12 | use yii\helpers\Html; |
| 13 | 13 | use yii\widgets\ActiveForm; |
| 14 | 14 | use yii\widgets\ListView; |
| 15 | - | |
| 15 | + use yii\helpers\VarDumper as d; | |
| 16 | + use artbox\core\models\Alias; | |
| 17 | + | |
| 18 | + | |
| 16 | 19 | $this->params[ 'breadcrumbs'][] = \Yii::t('app', 'Quest/Answer'); |
| 17 | 20 | |
| 18 | 21 | $model = new Question(['service_id' => $service_id]); |
| ... | ... | @@ -78,8 +81,30 @@ |
| 78 | 81 | <span><?=\Yii::t('app','General issues');?></span></a></li> |
| 79 | 82 | <?php foreach ($services as $service){?> |
| 80 | 83 | <li <?=($service_id == $service->id ? 'class="active"' : '')?>> |
| 81 | - <a href="<?=Url::current(['service_id' => $service->id])?>"><span><?=$service->title?></span></a></li> | |
| 84 | + <?php | |
| 85 | + $test=Alias::find() | |
| 86 | + #->where(['route' => \yii\helpers\Json::encode(['site\questions', 'service_id' => $service->id])]) | |
| 87 | + # ->andWhere(['language_id' => $service->language->language_id])->all(); | |
| 88 | + #->where(['language_id' => $service->language->language_id]) | |
| 89 | + ->where(['LIKE','route','"site/questions","service_id":'.$service->id ]) | |
| 90 | + #->where(['LIKE','route','service_id:'.$service->id ]) | |
| 91 | + ->andWhere(['language_id' => $service->language->language_id]) | |
| 92 | + ->all(); | |
| 93 | + | |
| 94 | + d::dump($service,10,1); | |
| 95 | + # d::dump($test,10,1); | |
| 96 | + die; | |
| 97 | + | |
| 98 | + ?> | |
| 99 | + <a href="<?=($service->language->questionAlias !== null) ?Url::to(['alias' => $service->language->questionAlias]): Url::current(['service_id' => $service->id])?>"><span><?=$service->title?></span></a></li> | |
| 82 | 100 | <?php } ?> |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 83 | 108 | </ul> |
| 84 | 109 | </div> |
| 85 | 110 | <div class="col-xs-12 col-sm-12"> | ... | ... |