Commit 8e73da4f4ad91b7bca97bc302547d024bcce5eca
1 parent
9cf612c4
product models and migrations
Showing
5 changed files
with
304 additions
and
1 deletions
Show diff stats
common/messages/ru/app.php
| @@ -390,7 +390,7 @@ return [ | @@ -390,7 +390,7 @@ return [ | ||
| 390 | 'section-question__title'=> 'ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ', | 390 | 'section-question__title'=> 'ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ', |
| 391 | 'Номінальна потужність мережевого інвертора'=>'Номінальна потужність мережевого інвертора', | 391 | 'Номінальна потужність мережевого інвертора'=>'Номінальна потужність мережевого інвертора', |
| 392 | 'Встановлена потужність фотоелектричних модулів'=>'Встановлена потужність фотоелектричних модулів', | 392 | 'Встановлена потужність фотоелектричних модулів'=>'Встановлена потужність фотоелектричних модулів', |
| 393 | - 'Вартість системи "під ключ"'=>'Вартість системи "під ключ"', | 393 | + 'Вартість системи "під ключ"'=>'Стоимость системы "под ключ"', |
| 394 | 394 | ||
| 395 | 395 | ||
| 396 | 396 |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace common\models; | ||
| 4 | + | ||
| 5 | +use artbox\core\behaviors\LanguageBehavior; | ||
| 6 | +use artbox\core\models\Image; | ||
| 7 | +use yii\db\ActiveRecord; | ||
| 8 | + | ||
| 9 | +class Product extends ActiveRecord | ||
| 10 | +{ | ||
| 11 | + /** | ||
| 12 | + * @inheritdoc | ||
| 13 | + */ | ||
| 14 | + public static function tableName() | ||
| 15 | + { | ||
| 16 | + return 'product'; | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + public function behaviors() | ||
| 20 | + { | ||
| 21 | + return [ | ||
| 22 | + 'language' => [ | ||
| 23 | + 'class' => LanguageBehavior::className(), | ||
| 24 | + ], | ||
| 25 | + ]; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + public function rules() | ||
| 29 | + { | ||
| 30 | + return [ | ||
| 31 | +// [ | ||
| 32 | +// [ | ||
| 33 | +// 'image', | ||
| 34 | +// ], | ||
| 35 | +// 'required', | ||
| 36 | +// ], | ||
| 37 | + [ | ||
| 38 | + [ | ||
| 39 | + 'status', | ||
| 40 | + ], | ||
| 41 | + 'boolean', | ||
| 42 | + ], | ||
| 43 | + [ | ||
| 44 | + [ | ||
| 45 | + 'sku', | ||
| 46 | + ], | ||
| 47 | + 'string', | ||
| 48 | + 'max' => 255, | ||
| 49 | + ], | ||
| 50 | + [ | ||
| 51 | + [ | ||
| 52 | + 'sort', | ||
| 53 | + 'image_id', | ||
| 54 | + ], | ||
| 55 | + 'integer', | ||
| 56 | + ], | ||
| 57 | + [ | ||
| 58 | + ['image_id'], | ||
| 59 | + 'exist', | ||
| 60 | + 'skipOnError' => true, | ||
| 61 | + 'targetClass' => Image::className(), | ||
| 62 | + 'targetAttribute' => ['image_id' => 'id'], | ||
| 63 | + ], | ||
| 64 | + ]; | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + /** | ||
| 68 | + * @return \yii\db\ActiveQuery | ||
| 69 | + */ | ||
| 70 | + public function getImage() | ||
| 71 | + { | ||
| 72 | + return $this->hasOne(Image::className(), ['id' => 'image_id']); | ||
| 73 | + } | ||
| 74 | +} | ||
| 0 | \ No newline at end of file | 75 | \ No newline at end of file |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace common\models; | ||
| 4 | + | ||
| 5 | +use artbox\core\models\Language; | ||
| 6 | +use yii\db\ActiveRecord; | ||
| 7 | + | ||
| 8 | +class ProductLang extends ActiveRecord | ||
| 9 | +{ | ||
| 10 | + /** | ||
| 11 | + * @inheritdoc | ||
| 12 | + */ | ||
| 13 | + public static function tableName() | ||
| 14 | + { | ||
| 15 | + return 'product_lang'; | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * @inheritdoc | ||
| 20 | + */ | ||
| 21 | + public function rules() | ||
| 22 | + { | ||
| 23 | + return [ | ||
| 24 | + [ | ||
| 25 | + [ | ||
| 26 | + 'product_id', | ||
| 27 | + 'language_id', | ||
| 28 | + 'title', | ||
| 29 | + ], | ||
| 30 | + 'required', | ||
| 31 | + ], | ||
| 32 | + [ | ||
| 33 | + [ | ||
| 34 | + 'product_id', | ||
| 35 | + 'language_id', | ||
| 36 | + ], | ||
| 37 | + 'integer', | ||
| 38 | + ], | ||
| 39 | + [ | ||
| 40 | + [ | ||
| 41 | + 'title', | ||
| 42 | + ], | ||
| 43 | + 'string', | ||
| 44 | + 'max' => 255, | ||
| 45 | + ], | ||
| 46 | + [ | ||
| 47 | + [ | ||
| 48 | + 'description', | ||
| 49 | + ], | ||
| 50 | + 'string', | ||
| 51 | + ], | ||
| 52 | + [ | ||
| 53 | + [ 'language_id' ], | ||
| 54 | + 'exist', | ||
| 55 | + 'skipOnError' => true, | ||
| 56 | + 'targetClass' => Language::className(), | ||
| 57 | + 'targetAttribute' => [ 'language_id' => 'id' ], | ||
| 58 | + ], | ||
| 59 | + [ | ||
| 60 | + [ 'tile_id' ], | ||
| 61 | + 'exist', | ||
| 62 | + 'skipOnError' => true, | ||
| 63 | + 'targetClass' => Product::className(), | ||
| 64 | + 'targetAttribute' => [ 'product_id' => 'id' ], | ||
| 65 | + ], | ||
| 66 | + ]; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + | ||
| 70 | + /** | ||
| 71 | + * @return \yii\db\ActiveQuery | ||
| 72 | + */ | ||
| 73 | + public function getLanguage() | ||
| 74 | + { | ||
| 75 | + return $this->hasOne(Language::className(), [ 'id' => 'language_id' ]); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + /** | ||
| 79 | + * @return \yii\db\ActiveQuery | ||
| 80 | + */ | ||
| 81 | + public function getProduct() | ||
| 82 | + { | ||
| 83 | + return $this->hasOne(Product::className(), [ 'id' => 'product_id' ]); | ||
| 84 | + } | ||
| 85 | +} | ||
| 0 | \ No newline at end of file | 86 | \ No newline at end of file |
console/migrations/m220412_144550_create_product_table.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +use yii\db\Migration; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Handles the creation of table `product`. | ||
| 7 | + */ | ||
| 8 | +class m220412_144550_create_product_table extends Migration | ||
| 9 | +{ | ||
| 10 | + /** | ||
| 11 | + * @inheritdoc | ||
| 12 | + */ | ||
| 13 | + public function up() | ||
| 14 | + { | ||
| 15 | + $this->createTable('product', [ | ||
| 16 | + 'id' => $this->primaryKey(), | ||
| 17 | + 'status' => $this->boolean(), | ||
| 18 | + 'sort' => $this->smallInteger(), | ||
| 19 | + 'sku' =>$this->string(255), | ||
| 20 | + 'image_id' => $this->integer(), | ||
| 21 | + ]); | ||
| 22 | + $this->addForeignKey( | ||
| 23 | + 'fk-product-image_id', | ||
| 24 | + 'product', | ||
| 25 | + 'image_id', | ||
| 26 | + 'ImageManager', | ||
| 27 | + 'id', | ||
| 28 | + 'CASCADE' | ||
| 29 | + ); | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + /** | ||
| 33 | + * @inheritdoc | ||
| 34 | + */ | ||
| 35 | + public function down() | ||
| 36 | + { | ||
| 37 | + $this->dropForeignKey( | ||
| 38 | + 'fk-product-image_id', | ||
| 39 | + 'product' | ||
| 40 | + ); | ||
| 41 | + $this->dropTable('product'); | ||
| 42 | + } | ||
| 43 | +} |
console/migrations/m220412_144602_create_product_lang_table.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +use yii\db\Migration; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Handles the creation of table `product_lang`. | ||
| 7 | + */ | ||
| 8 | +class m220412_144602_create_product_lang_table extends Migration | ||
| 9 | +{ | ||
| 10 | + /** | ||
| 11 | + * @inheritdoc | ||
| 12 | + */ | ||
| 13 | + public function up() | ||
| 14 | + { | ||
| 15 | + $this->createTable('product_lang', [ | ||
| 16 | + 'product_id' => $this->integer()->notNull(), | ||
| 17 | + 'language_id' => $this->smallInteger()->notNull(), | ||
| 18 | + 'description' => $this->text(), | ||
| 19 | + 'title' => $this->string(255), | ||
| 20 | + ]); | ||
| 21 | + // creates index for column `product_id` | ||
| 22 | + $this->createIndex( | ||
| 23 | + 'idx-product_lang-product_id', | ||
| 24 | + 'product_lang', | ||
| 25 | + 'product_id' | ||
| 26 | + ); | ||
| 27 | + | ||
| 28 | + // add foreign key for table `object` | ||
| 29 | + $this->addForeignKey( | ||
| 30 | + 'fk-product_lang-product_id', | ||
| 31 | + 'product_lang', | ||
| 32 | + 'product_id', | ||
| 33 | + 'product', | ||
| 34 | + 'id', | ||
| 35 | + 'CASCADE' | ||
| 36 | + ); | ||
| 37 | + | ||
| 38 | + // creates index for column `language_id` | ||
| 39 | + $this->createIndex( | ||
| 40 | + 'idx-product_lang-language_id', | ||
| 41 | + 'product_lang', | ||
| 42 | + 'language_id' | ||
| 43 | + ); | ||
| 44 | + | ||
| 45 | + // add foreign key for table `language` | ||
| 46 | + $this->addForeignKey( | ||
| 47 | + 'fk-product_lang-language_id', | ||
| 48 | + 'product_lang', | ||
| 49 | + 'language_id', | ||
| 50 | + 'language', | ||
| 51 | + 'id', | ||
| 52 | + 'CASCADE' | ||
| 53 | + ); | ||
| 54 | + // add double primary key | ||
| 55 | + $this->addPrimaryKey( | ||
| 56 | + "pk-product_lang-product_id-language_id", | ||
| 57 | + "product_lang", | ||
| 58 | + [ | ||
| 59 | + "product_id", | ||
| 60 | + "language_id", | ||
| 61 | + ] | ||
| 62 | + ); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + /** | ||
| 66 | + * @inheritdoc | ||
| 67 | + */ | ||
| 68 | + public function down() | ||
| 69 | + { | ||
| 70 | + // drop double primary key | ||
| 71 | + $this->dropPrimaryKey( | ||
| 72 | + "pk-product_lang-product_id-language_id", | ||
| 73 | + "product_lang" | ||
| 74 | + ); | ||
| 75 | + | ||
| 76 | + // drops foreign key for table `product` | ||
| 77 | + $this->dropForeignKey( | ||
| 78 | + 'fk-product_lang-product_id', | ||
| 79 | + 'product_lang' | ||
| 80 | + ); | ||
| 81 | + | ||
| 82 | + // drops index for column `product_id` | ||
| 83 | + $this->dropIndex( | ||
| 84 | + 'idx-product_lang-product_id', | ||
| 85 | + 'product_lang' | ||
| 86 | + ); | ||
| 87 | + | ||
| 88 | + // drops foreign key for table `language` | ||
| 89 | + $this->dropForeignKey( | ||
| 90 | + 'fk-product_lang-language_id', | ||
| 91 | + 'product_lang' | ||
| 92 | + ); | ||
| 93 | + | ||
| 94 | + // drops index for column `language_id` | ||
| 95 | + $this->dropIndex( | ||
| 96 | + 'idx-product_lang-language_id', | ||
| 97 | + 'product_lang' | ||
| 98 | + ); | ||
| 99 | + $this->dropTable('product_lang'); | ||
| 100 | + } | ||
| 101 | +} |