50], [['keyword'], 'string', 'max' => 100], [['scene_str'], 'string', 'max' => 64], [['ticket', 'addon_name'], 'string', 'max' => 200], [['type'], 'string', 'max' => 10], [['url'], 'string', 'max' => 80], [['extend'], 'safe'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'merchant_id' => '商户ID', 'store_id' => '店铺ID', 'name' => '场景名称', 'keyword' => '关联关键字', 'scene_id' => '场景ID', 'scene_str' => '场景值', 'model_type' => '类型', 'ticket' => 'ticket', 'expire_seconds' => '有效期', 'scan_num' => '扫描次数', 'type' => '二维码类型', 'url' => 'url', 'end_time' => '结束时间', 'is_addon' => '是否插件', 'addon_name' => '插件名称', 'extend' => '扩展', 'status' => '状态', 'created_at' => '创建时间', 'updated_at' => '修改时间', ]; } /** * 验证提交的类别 */ public function verifyModel() { if ($this->isNewRecord) { // 临时 if ($this->model == QrcodeModelTypeEnum::TEM) { empty($this->expire_seconds) && $this->addError('expire_seconds', '临时二维码过期时间必填'); } else { !$this->scene_str && $this->addError('scene_str', '永久二维码场景字符串必填'); if (self::find()->where(['scene_str' => $this->scene_str, 'merchant_id' => $this->merchant_id])->one()) { $this->addError('scene_str', '场景值已经存在'); } } } } /** * @param bool $insert * @return bool */ public function beforeSave($insert) { if ($this->isNewRecord) { $this->end_time = time() + (int) $this->expire_seconds; $this->addon_name = Yii::$app->params['addon']['name'] ?? ''; !empty($this->addon_name) && $this->is_addon = 1; } return parent::beforeSave($insert); } }