<?php
/**
 * Created by PhpStorm.
 * User: xiaofeng
 * Date: 2018/3/4
 * Time: 上午9:28
 */

namespace common\models;

//use yii\db\ActiveRecord;
//use yii\behaviors\TimestampBehavior;
class CategoryAdviser extends Common
{
//        public $setDel = 1;
//        public function behaviors()
//        {
//            return [
//                [
//                    'class' => TimestampBehavior::className(),
//                    'attributes' => [
//                        # 创建之前
//                        ActiveRecord::EVENT_BEFORE_INSERT => ['create_at', 'update_at'],
//                        # 修改之前
//                        ActiveRecord::EVENT_BEFORE_UPDATE => ['update_at']
//                    ],
//                    #设置默认值
//                    'value' => $_SERVER['REQUEST_TIME']
//                ]
//            ];
//        }

        public function rules()
        {
            return [
                [['name','experience'],'required','message'=>'不能为空'],
                ['name', 'unique', 'targetClass' => 'common\models\CategoryAdriser','on'=>['add'],'message'=>'该城市名称已经存在'],
                ['photo','string','max'=>50],

                ['del','default','value'=>1],
                ['del','in','range'=>[1,2]],
            ];
        }


        /*
         * 调用里面的验证,错误返回数组,正确返回对象
         * */
        public function Authenticator($input)
        {
            $this->load($input,'');
            if(!$this->validate()) return $this->errors;
            return $this;
        }

        public function FindById($id)
        {
            return self::findOne($id);
        }

        public function getList($page,$arr = null)
        {
                $query = self::find();
                $query->select($arr);
                $query = $this->WhereColumn($query);
                if(!empty($page['page']))
                {
                    $query->offset = ($page['page'] - 1) * $page['limit'];
                    $query->limit = $page['limit'];
                }
                return $query->asArray()->all();
        }

        private function WhereColumn($query)
        {
            $query->andFilterWhere(['name'=>$this->name]);
            $query->andWhere(['del'=>$this->setDel]);
            return $query;
        }

        public function Total()
        {
            $query = self::find();
            $query = $this->WhereColumn($query);
            return $query->count();
        }
    public function GetAdviser()
    {
        $query = self::find();
        $query->select(['id', 'name', 'experience', 'photo']);
        $query->orderBy('RAND()');
        return $query->asArray()->one();
    }
}