diff --git a/backend/controllers/PackageController.php b/backend/controllers/PackageController.php index b1fa3fa..03563d0 100644 --- a/backend/controllers/PackageController.php +++ b/backend/controllers/PackageController.php @@ -164,6 +164,13 @@ 'name' => 'sort', 'type' => Form::NUMBER, ], + [ + 'name' => 'service_id', + 'type' => Form::RELATION, + 'relationAttribute' => 'title', + 'relationName' => 'service', + 'multiple' => false, + ] ], ]; } diff --git a/common/models/Package.php b/common/models/Package.php index 1eb0f74..b4f857d 100644 --- a/common/models/Package.php +++ b/common/models/Package.php @@ -79,7 +79,7 @@ class Package extends ActiveRecord { return [ [['sort', 'created_at', 'updated_at'], 'default', 'value' => null], - [['sort', 'created_at', 'updated_at', 'image_id'], 'integer'], + [['sort', 'created_at', 'updated_at', 'image_id', 'service_id'], 'integer'], [['status'], 'boolean'], ]; } @@ -130,4 +130,8 @@ class Package extends ActiveRecord return $this->hasOne(Image::className(), ['id' => 'image_id']); } + public function getService(){ + return $this->hasOne(Service::className(), ['id' => 'service_id']); + } + } diff --git a/common/models/Service.php b/common/models/Service.php index 6073abb..6e76dd8 100644 --- a/common/models/Service.php +++ b/common/models/Service.php @@ -162,4 +162,8 @@ class Service extends ActiveRecord public function getQuestions(){ return $this->hasMany(Question::className(), ['service_id' => 'id']); } + + public function getPackages(){ + return $this->hasMany(Package::className(), ['service_id' => 'id']); + } } diff --git a/frontend/controllers/ServiceController.php b/frontend/controllers/ServiceController.php index 7701036..d1bcee5 100644 --- a/frontend/controllers/ServiceController.php +++ b/frontend/controllers/ServiceController.php @@ -20,6 +20,9 @@ $model = $this->findModel($id); if ($model->parent_id == null){ $others = Service::find()->where(['parent_id' => $model->id])->with('services.language.alias')->all(); + if (empty($others)){ + $others = Service::find()->where(['parent_id' => null, 'status' => true])->all(); + } }elseif ($model->level == 1){ $others = Service::find()->where(['parent_id' => $model->parent_id])->with('services.language.alias')->all(); }else{ @@ -42,6 +45,8 @@ $query->where(['status' => true]); }, 'questions' => function (ActiveQuery $query){ $query->where(['status' => true])->with('doctor'); + },'packages' => function (ActiveQuery $query){ + $query->with(['image', 'language'])->where(['status' => true]); }])->one(); if (empty($model)){ throw new NotFoundHttpException('Model not found'); diff --git a/frontend/views/service/view.php b/frontend/views/service/view.php index f270e3a..9d950a7 100644 --- a/frontend/views/service/view.php +++ b/frontend/views/service/view.php @@ -7,6 +7,7 @@ * @var \yii\web\View $this * @var \artbox\core\components\SeoComponent $seo; */ + use artbox\core\helpers\ImageHelper; use artbox\core\helpers\Url; use common\models\Service; @@ -77,6 +78,36 @@ +