ObjectkbLang.php 4.79 KB
<?php
    
    namespace common\models;
    
    use yii\db\ActiveRecord;
    use artbox\core\models\Language;
    use artbox\core\models\Alias;
    use Yii;
    use artbox\core\behaviors\SlugBehavior;
    
    /**
     * User: timur
     * Date: 25.01.18
     * Time: 12:58
     */
    class ObjectkbLang extends ActiveRecord
    {
        
        /**
         * @return string
         */
        public static function tableName()
        {
            return "object_lang";
        }
        
        /**
         * @inheritdoc
         */
        public function behaviors()
        {
            return [
                'slug' => [
                    'class'  => SlugBehavior::className(),
                    'action' => 'objectkb/view',
                    'params' => [
                        'id' => 'object_id',
                    ],
                    'fields' => [
                        'object_name'             => 'Object name',
                        'object.id'               => 'Object id',
                        'upper_text'              => 'Object upper text',
                        'about_object_text'       => 'About Object text',
                        'object.lang.object_name' => 'some stuf',
                    ],
                ],
            ];
        }
        
        /**
         * @return array
         */
        public function rules()
        {
            return [
                [
                    [
                        'object_id',
                        'language_id',
                        'upper_text',
                        'about_object_text',
                        'object_name',
                        'meta_title',
                        'meta_description',
                        'h1',
                    ],
                    'required',
                ],
                [
                    [
                        'object_id',
                        'language_id',
                    ],
                    'integer',
                ],
                [
                    [
                        'aliasValue',
                        'upper_text',
                        'about_object_text',
                        'object_name',
                        'meta_title',
                        'meta_description',
                        'h1',
                    ],
                    'string',
                ],
                [
                    [ 'object_id' ],
                    'exist',
                    'skipOnError'     => true,
                    'targetClass'     => Objectkb::className(),
                    'targetAttribute' => [ 'object_id' => 'id' ],
                ],
                [
                    [ 'language_id' ],
                    'exist',
                    'skipOnError'     => true,
                    'targetClass'     => Language::className(),
                    'targetAttribute' => [ 'language_id' => 'id' ],
                ],
//                [
//                    [ 'alias_id' ],
//                    'exist',
//                    'skipOnError'     => true,
//                    'targetClass'     => Alias::className(),
//                    'targetAttribute' => [ 'alias_id' => 'id' ],
//                ],
            
            ];
        }
        
        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'object_id'         => Yii::t('core', 'Object ID'),
                'language_id'       => Yii::t('core', 'Language ID'),
                'alias_id'          => Yii::t('core', 'alias ID'),
                'upper_text'        => Yii::t('core', 'Upper Text'),
                'about_object_text' => Yii::t('core', 'About object text'),
                'object_name'       => Yii::t('core', 'Object name'),
                'meta_title'        => Yii::t('core', 'Meta Title'),
                'meta_description'  => Yii::t('core', 'Meta Description'),
                'h1'                => Yii::t('core', 'H1 tag'),
            ];
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getObject()
        {
            return $this->hasOne(Objectkb::className(), [ 'id' => 'object_id' ]);
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getLanguage()
        {
            return $this->hasOne(Language::className(), [ 'id' => 'language_id' ]);
        }
        
        /**
         * @return \yii\db\ActiveQuery
         */
        public function getAlias()
        {
            return $this->hasOne(Alias::className(), [ 'id' => 'alias_id' ]);
        }
        
        public static function primaryKey()
        {
            return [
                'object_id',
                'language_id',
            ];
        }
        
    }