[]], ['riseSwitch', 'default', 'value' => 1], // 数据类型验证 // ['festIdList', 'validateFestIdList'], ['riseSwitch', 'in', 'range' => [0, 1]], ['riseType', 'in', 'range' => [0, 1]], ['riseAmount', 'number', 'min' => 0], // 条件验证 - 当涨价开关打开时,必须选择节日 // ['festIdList', 'required', 'when' => function($model) { // return $model->riseSwitch == 1; // }, 'message' => '请选择节日'], // 条件验证 - 当涨价开关打开时,必须设置涨价金额 ['riseAmount', 'required', 'when' => function($model) { return $model->riseSwitch == 1; }, 'message' => '请设置涨价金额'], ]; } /** * 验证节日ID列表 * @param string $attribute 属性名 * @param array $params 参数 */ public function validateFestIdList($attribute, $params) { if (!empty($this->$attribute)) { if (!is_array($this->$attribute)) { $this->addError($attribute, '节日列表格式不正确'); return; } foreach ($this->$attribute as $festId) { if (!is_numeric($festId) || $festId <= 0) { $this->addError($attribute, '节日ID必须为正整数'); return; } } } } /** * 获取属性标签 * @return array */ public function attributeLabels() { return [ 'festIdList' => '节日列表', 'riseSwitch' => '涨价开关', 'riseType' => '涨价类型', 'riseAmount' => '涨价金额/百分比', ]; } }