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], |