'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); } }