| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | 
							- <?php
 
- namespace common\modules\area\models;
 
- use Yii;
 
- /**
 
-  * This is the model class for table "{{%area}}".
 
-  *
 
-  * @property integer $area_id
 
-  * @property string $title
 
-  * @property string $slug
 
-  * @property string $description
 
-  * @property string $blocks
 
-  */
 
- class Area extends \yii\db\ActiveRecord
 
- {
 
-     /**
 
-      * @inheritdoc
 
-      */
 
-     public static function tableName()
 
-     {
 
-         return '{{%area}}';
 
-     }
 
-     /**
 
-      * @inheritdoc
 
-      */
 
-     public function rules()
 
-     {
 
-         return [
 
-             [['title', 'slug', 'description'], 'required'],
 
-             [['title', 'slug', 'description'], 'string'],
 
-             ["blocks", "safe"]
 
-         ];
 
-     }
 
-     /**
 
-      * @inheritdoc
 
-      */
 
-     public function attributeLabels()
 
-     {
 
-         return [
 
-             'area_id' => 'ID',
 
-             'title' => '区域名',
 
-             'slug' => '标识',
 
-             'description' => '区域说明',
 
-             'blocks' => '区块',
 
-         ];
 
-     }
 
-     public function beforeSave($insert)
 
-     {
 
-         if(parent::beforeSave($insert) == false) {
 
-             return false;
 
-         }
 
-         $this->blocks = serialize($this->blocks);
 
-         return true;
 
-     }
 
-     public function afterFind()
 
-     {
 
-         parent::afterFind();
 
-         $this->blocks = unserialize($this->blocks);
 
-     }
 
-     public function getBlocks() {
 
-         if(!empty($this->blocks)) {
 
-             $query =   Block::find()->where(['block_id' => $this->blocks])->orderBy([new \yii\db\Expression('FIELD (block_id, ' . implode(', ', $this->blocks) . ')')]);
 
-             return $query->all();
 
-         }
 
-         return [];
 
-     }
 
-     public static function findByIdOrSlug($id)
 
-     {
 
-         if (intval($id) == 0) {
 
-             $condition = ["slug" => $id];
 
-         } else {
 
-             $condition = [
 
-                 $id
 
-             ];
 
-         }
 
-         return static::findOne($condition);
 
-     }
 
- }
 
 
  |