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