OptionLang.php 1.84 KB
<?php
    
    namespace artbox\catalog\filter\models;
    
    use Yii;
    use yii\db\ActiveRecord;
    
    /**
     * This is the model class for table "product_option_group_excl_lang".
     *
     * @property integer $product_option_group_excl_id
     * @property integer $language_id
     * @property string  $title
     * @property string  $slug
     * @property string  $description
     */
    class OptionLang extends ActiveRecord
    {
        public static function primaryKey()
        {
            return [
                'option_id',
                'language_id',
            ];
        }
        
        /**
         * @inheritdoc
         */
        public static function tableName()
        {
            return 'option_lang';
        }
        
        /**
         * @inheritdoc
         */
        public function rules()
        {
            return [
                [
                    [
                        'title',
                        'slug',
                    ],
                    'required',
                ],
                [
                    [
                        'option_id',
                        'language_id',
                    ],
                    'integer',
                ],
            ];
        }
        
        /**
         * @inheritdoc
         */
        public function attributeLabels()
        {
            return [
                'language_id' => Yii::t('app', 'Language ID'),
                'title'       => Yii::t('app', 'Title'),
            ];
        }
        
        public function __set($name, $value)
        {
            if ($name === 'slug') {
                if (!preg_match('/[a-z-]+/', $value)) {
                    $value = \artbox\core\helpers\SlugHelper::slugify($value);
                }
            }
            
            parent::__set($name, $value);
        }
    }