6d62827f
Anastasia
services
|
1
2
3
4
|
<?php
namespace common\models;
|
54a26acc
alex
Поменял везде Ali...
|
5
|
|
7f403223
Anastasia
- add image to se...
|
6
|
use artbox\core\models\Image;
|
54a26acc
alex
Поменял везде Ali...
|
7
|
use backend\traits\AliasableTrait;
|
6d62827f
Anastasia
services
|
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
|
use backend\behaviors\LevelBehavior;
use Yii;
use artbox\core\models\Language;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveQuery;
use yii\db\ActiveRecord;
use yii\helpers\Json;
use yii2tech\ar\position\PositionBehavior;
use yii2tech\ar\variation\VariationBehavior;
/**
* This is the model class for table "service".
*
* @property int $id
* @property int $parent_id
* @property int $sort
* @property bool $status
* @property int $level
* @property int $created_at
* @property int $updated_at
*
* @property ServiceLang[] $serviceLangs
* @property Language[] $languages
* from VariationBehavior
* @method ActiveQuery hasDefaultVariationRelation();
*/
class Service extends ActiveRecord
{
use AliasableTrait;
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'service';
}
/**
* @return array
*/
public function behaviors()
{
return [
'translations' => [
'class' => VariationBehavior::className(),
'variationsRelation' => 'languages',
'defaultVariationRelation' => 'language',
'variationOptionReferenceAttribute' => 'language_id',
'optionModelClass' => Language::className(),
'defaultVariationOptionReference' => function () {
return Language::getCurrent()->id;
},
'optionQueryFilter' => function (ActiveQuery $query) {
$query->where(
[
'status' => true,
]
);
},
],
'positionBehavior' => [
'class' => PositionBehavior::className(),
'positionAttribute' => 'sort',
],
'timestamp' => [
'class' => TimestampBehavior::className(),
],
'level' => [
'class' => LevelBehavior::className(),
],
];
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['parent_id', 'sort', 'level', 'created_at', 'updated_at'], 'default', 'value' => null],
|
7f403223
Anastasia
- add image to se...
|
87
|
[['sort', 'level', 'created_at', 'updated_at', 'image_id'], 'integer'],
|
6d62827f
Anastasia
services
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
[['status'], 'boolean'],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'parent_id' => Yii::t('app', 'Parent ID'),
'sort' => Yii::t('app', 'Sort'),
'status' => Yii::t('app', 'Status'),
'level' => Yii::t('app', 'Level'),
'created_at' => Yii::t('app', 'Created At'),
'updated_at' => Yii::t('app', 'Updated At'),
|
7f403223
Anastasia
- add image to se...
|
105
|
'image_id' => Yii::t('app', 'Image'),
|
6d62827f
Anastasia
services
|
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getLanguages()
{
return $this->hasMany(ServiceLang::className(), ['service_id' => 'id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getParent(){
return $this->hasOne(Service::className(), ['id' => 'parent_id']);
}
public function getLanguage(){
return $this->hasDefaultVariationRelation();
}
/**
* @return string
*/
public function getRoute()
{
return Json::encode(
[
'service/view',
'id' => $this->id,
]
);
}
|
7f403223
Anastasia
- add image to se...
|
141
142
143
144
|
public function getImage(){
return $this->hasOne(Image::className(), ['id' => 'image_id']);
}
|
b60a88b8
Anastasia
- main page
|
145
146
147
148
149
150
151
152
|
/**
* @return \yii\db\ActiveQuery
*/
public function getServices()
{
return $this->hasMany(Service::className(), [ 'parent_id' => 'id' ]);
}
|
aedc35b5
Anastasia
- load scg to logo
|
153
154
|
public function getPrices(){
|
43a24059
Anastasia
- servives
|
155
156
157
158
|
return $this->hasMany(Price::className(), ['service_id' => 'id']);
}
public function getComments(){
|
68e72651
Anastasia
- blog
|
159
|
return $this->hasMany(Comment::className(), ['entity_id' => 'id'])->andWhere(['entity' => Service::className()]);
|
43a24059
Anastasia
- servives
|
160
161
162
163
|
}
public function getQuestions(){
return $this->hasMany(Question::className(), ['service_id' => 'id']);
|
aedc35b5
Anastasia
- load scg to logo
|
164
|
}
|
a4320bd1
Anastasia
- bug fix
|
165
166
167
168
|
public function getPackages(){
return $this->hasMany(Package::className(), ['service_id' => 'id']);
}
|
6d62827f
Anastasia
services
|
169
|
}
|