Master.php 2.66 KB
<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "{{%master}}".
 *
 * @property string $id
 * @property string $master_id
 * @property string $name
 * @property string $pic
 * @property integer $create_time
 * @property integer $update_time
 */
class Master extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%master}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['live_nums', 'create_time', 'update_time'], 'integer'],
            [['name'], 'string', 'max' => 100],
            [['meta', 'pic'], 'string', 'max' => 255],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'master_id' => '主播ID',
            'name' => '主播名称',
            'meta' => '主播标签',
            'pic' => '主播头像',
            'live_nums' => 'Live Nums',
            'create_time' => '创建时间',
            'update_time' => '更新时间',
        ];
    }
    
    public function behaviors() {
        return [
            [
                'class' => \yii\behaviors\TimestampBehavior::className(),
                'createdAtAttribute' => 'create_time',
                'updatedAtAttribute' => 'update_time',
            ]
        ];
    }
    
    public function afterSave($insert, $changedAttributes)
    {
        if (!empty($changedAttributes)){
            foreach ($this->room as $room){
                $room->touch('update_time');
            }
        }
        
        parent::afterSave($insert, $changedAttributes);
    }
    
    /**
     * 关联表-房间
     * @return type
     */
    public function getRoom()
    {
        return $this->hasMany(Room::className(), ['master_id'=>'master_id']);
    }
    
    /**
     * 注入查询条件
     * @param array $condition
     */
    public static function condition($condition){
        $model = parent::find();
        foreach ($condition as $field=>$value){
            if ($field == 'name'){
                if (!empty($value)){
                    $model->andWhere(['like','name',$value]);
                }
            }else{
                $model->andWhere([$field=>$value]);
            }
        }
        return $model;
    }
    
    /**
     * 返回所有主播[id=>id.' '.name,...]的列表数组
     * @return string
     */
    public static function getId2name(){
        $list = self::find()->all();
        $masters = [];
        foreach ($list as $model){
            $masters[$model->master_id] = $model->master_id.' '.$model->name;
        }
        return $masters;
    }
}