Commit 48269590f2997f6618647a088471eb31d2268106
1 parent
754fc7d9
+ Страница getDataByKey метод
Showing
4 changed files
with
66 additions
and
30 deletions
Show diff stats
backend/controllers/PageController.php
@@ -8,6 +8,7 @@ use backend\models\SearchPage; | @@ -8,6 +8,7 @@ use backend\models\SearchPage; | ||
8 | use yii\web\Controller; | 8 | use yii\web\Controller; |
9 | use yii\web\NotFoundHttpException; | 9 | use yii\web\NotFoundHttpException; |
10 | use yii\filters\VerbFilter; | 10 | use yii\filters\VerbFilter; |
11 | +use common\models\PageLang; | ||
11 | 12 | ||
12 | /** | 13 | /** |
13 | * PageController implements the CRUD actions for Page model. | 14 | * PageController implements the CRUD actions for Page model. |
@@ -62,10 +63,24 @@ class PageController extends Controller | @@ -62,10 +63,24 @@ class PageController extends Controller | ||
62 | public function actionCreate() | 63 | public function actionCreate() |
63 | { | 64 | { |
64 | $model = new Page(); | 65 | $model = new Page(); |
65 | - | ||
66 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | 66 | + |
67 | + if ($model->load(Yii::$app->request->post()) && $model->save()) | ||
68 | + { | ||
69 | + // сохраняем в таблицу page_lang | ||
70 | + $model2 = new PageLang(); | ||
71 | + | ||
72 | + // передаем переменные | ||
73 | + $model2->attributes = $_POST['Page']; | ||
74 | + $model2->page_id = $model->page_id; | ||
75 | + $model2->lang_id = Yii::$app->lang_id; | ||
76 | + | ||
77 | + // сохраняем | ||
78 | + $model2->save(); | ||
79 | + | ||
67 | return $this->redirect(['view', 'id' => $model->page_id]); | 80 | return $this->redirect(['view', 'id' => $model->page_id]); |
68 | - } else { | 81 | + } |
82 | + else | ||
83 | + { | ||
69 | return $this->render('create', [ | 84 | return $this->render('create', [ |
70 | 'model' => $model, | 85 | 'model' => $model, |
71 | ]); | 86 | ]); |
@@ -79,13 +94,22 @@ class PageController extends Controller | @@ -79,13 +94,22 @@ class PageController extends Controller | ||
79 | * @return mixed | 94 | * @return mixed |
80 | */ | 95 | */ |
81 | public function actionUpdate($id) | 96 | public function actionUpdate($id) |
82 | - { | 97 | + { |
83 | $model = $this->findModel($id); | 98 | $model = $this->findModel($id); |
84 | 99 | ||
85 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | 100 | + if ($model->load(Yii::$app->request->post()) && $model->save()) |
101 | + { | ||
102 | + // сохраняем в таблицу page_lang | ||
103 | + $model2 = new PageLang(); | ||
104 | + | ||
105 | + // сохраняем | ||
106 | + $model2->save(); | ||
107 | + | ||
86 | return $this->redirect(['view', 'id' => $model->page_id]); | 108 | return $this->redirect(['view', 'id' => $model->page_id]); |
87 | - } else { | ||
88 | - return $this->render('update', [ | 109 | + } |
110 | + else | ||
111 | + { | ||
112 | + return $this->render('create', [ | ||
89 | 'model' => $model, | 113 | 'model' => $model, |
90 | ]); | 114 | ]); |
91 | } | 115 | } |
@@ -113,7 +137,7 @@ class PageController extends Controller | @@ -113,7 +137,7 @@ class PageController extends Controller | ||
113 | */ | 137 | */ |
114 | protected function findModel($id) | 138 | protected function findModel($id) |
115 | { | 139 | { |
116 | - if (($model = Page::findOne($id)) !== null) { | 140 | + if (($model = Page::findOne(['page_id' => $id])) !== null) { |
117 | return $model; | 141 | return $model; |
118 | } else { | 142 | } else { |
119 | throw new NotFoundHttpException('The requested page does not exist.'); | 143 | throw new NotFoundHttpException('The requested page does not exist.'); |
common/messages/uk/field.php
common/models/Page.php
@@ -16,19 +16,8 @@ use common\models\PageLang; | @@ -16,19 +16,8 @@ use common\models\PageLang; | ||
16 | */ | 16 | */ |
17 | class Page extends \yii\db\ActiveRecord | 17 | class Page extends \yii\db\ActiveRecord |
18 | { | 18 | { |
19 | - private static $getAttributeLabelCache; | ||
20 | - | ||
21 | - public function getAttributeLabel($attribute) | ||
22 | - { | ||
23 | - $class = get_class($this); | ||
24 | - | ||
25 | - if (!isset(self::$getAttributeLabelCache[$class][$attribute])) { | ||
26 | - self::$getAttributeLabelCache[$class][$attribute] = parent::getAttributeLabel($attribute); | ||
27 | - } | ||
28 | - | ||
29 | - return self::$getAttributeLabelCache[$class][$attribute]; | ||
30 | - } | ||
31 | - | 19 | + var $data; |
20 | + | ||
32 | //public $title; | 21 | //public $title; |
33 | /** | 22 | /** |
34 | * @inheritdoc | 23 | * @inheritdoc |
@@ -38,7 +27,24 @@ class Page extends \yii\db\ActiveRecord | @@ -38,7 +27,24 @@ class Page extends \yii\db\ActiveRecord | ||
38 | return 'page'; | 27 | return 'page'; |
39 | } | 28 | } |
40 | 29 | ||
41 | - // ==== EXTRA ==== | 30 | + // ==== DATA PAGE LANG ==== |
31 | + | ||
32 | + public function getData() | ||
33 | + { | ||
34 | + $this->data = PageLang::find()->where(['page_id' => $this->page_id, 'lang_id' => 1])->one(); | ||
35 | + } | ||
36 | + | ||
37 | + public function getDataByKey($key) | ||
38 | + { | ||
39 | + if (! $this->data) | ||
40 | + { | ||
41 | + $this->getData(); | ||
42 | + } | ||
43 | + | ||
44 | + return isset ($this->data[$key]) ? $this->data[$key] : 'NO FIELD'; | ||
45 | + } | ||
46 | + | ||
47 | + // ==== DATA PAGE LANG FIELD ==== | ||
42 | 48 | ||
43 | public function getExtraField($key) | 49 | public function getExtraField($key) |
44 | { | 50 | { |
@@ -47,27 +53,27 @@ class Page extends \yii\db\ActiveRecord | @@ -47,27 +53,27 @@ class Page extends \yii\db\ActiveRecord | ||
47 | 53 | ||
48 | public function getTitle() | 54 | public function getTitle() |
49 | { | 55 | { |
50 | - return $this->getExtraField('title'); | 56 | + return $this->getDataByKey('title'); |
51 | } | 57 | } |
52 | 58 | ||
53 | public function getMeta_title() | 59 | public function getMeta_title() |
54 | { | 60 | { |
55 | - return $this->getExtraField('meta_title'); | 61 | + return $this->getDataByKey('meta_title'); |
56 | } | 62 | } |
57 | 63 | ||
58 | public function getMeta_description() | 64 | public function getMeta_description() |
59 | { | 65 | { |
60 | - return $this->getExtraField('meta_description'); | 66 | + return $this->getDataByKey('meta_description'); |
61 | } | 67 | } |
62 | 68 | ||
63 | public function getText() | 69 | public function getText() |
64 | { | 70 | { |
65 | - return $this->getExtraField('text'); | 71 | + return $this->getDataByKey('text'); |
66 | } | 72 | } |
67 | 73 | ||
68 | public function getPage_alias() | 74 | public function getPage_alias() |
69 | { | 75 | { |
70 | - return $this->getExtraField('page_alias'); | 76 | + return $this->getDataByKey('page_alias'); |
71 | } | 77 | } |
72 | 78 | ||
73 | /** | 79 | /** |
@@ -101,5 +107,11 @@ class Page extends \yii\db\ActiveRecord | @@ -101,5 +107,11 @@ class Page extends \yii\db\ActiveRecord | ||
101 | 'page_alias' => Yii::t('field', 'page_alias'), | 107 | 'page_alias' => Yii::t('field', 'page_alias'), |
102 | 'lang_id' => Yii::t('field', 'lang_id'), | 108 | 'lang_id' => Yii::t('field', 'lang_id'), |
103 | ]; | 109 | ]; |
104 | - } | 110 | + } |
111 | +/* | ||
112 | + public function getPage() | ||
113 | + { | ||
114 | + return $this->hasMany(PageLang::className(), ['page_id' => 'page_id']); | ||
115 | + } | ||
116 | +*/ | ||
105 | } | 117 | } |
common/models/PageLang.php
@@ -31,7 +31,7 @@ class PageLang extends \yii\db\ActiveRecord | @@ -31,7 +31,7 @@ class PageLang extends \yii\db\ActiveRecord | ||
31 | public function rules() | 31 | public function rules() |
32 | { | 32 | { |
33 | return [ | 33 | return [ |
34 | - [['page_id', 'title', 'meta_title', 'meta_description', 'text', 'page_alias', 'lang_id'], 'required'], | 34 | + [['page_id', 'title', 'meta_title', 'meta_description', 'text', 'page_alias', 'lang_id'], 'safe'], |
35 | [['page_id', 'lang_id'], 'integer'], | 35 | [['page_id', 'lang_id'], 'integer'], |
36 | [['text'], 'string'], | 36 | [['text'], 'string'], |
37 | [['title', 'page_alias'], 'string', 'max' => 256], | 37 | [['title', 'page_alias'], 'string', 'max' => 256], |