| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- <?php
- namespace hd\models\goods;
- use hd\models\BaseForm;
- /**
- * 商品添加表单模型
- */
- class AddForm extends BaseForm
- {
- /**
- * 商品名称
- * @var string
- */
- public $name;
- /**
- * 商品单价
- * @var float
- */
- public $price;
- /**
- * 价格类型
- * @var int
- */
- public $priceType;
- /**
- * 历史销量
- * @var int
- */
- public $sold;
- /**
- * 花朵数量
- * @var int
- */
- public $flowerNum;
- /**
- * 重量
- * @var float
- */
- public $weight;
- /**
- * 商品图片
- * @var array
- */
- public $shopImg;
- /**
- * 商品封面图
- * @var string
- */
- public $cover;
- /**
- * 商品库存
- * @var int
- */
- public $stock;
- /**
- * 商品分类ID
- * @var array
- */
- public $catIds;
- /**
- * 库存状态
- * @var int
- */
- public $stockSet;
- /**
- * 商品状态
- * @var int
- */
- public $status;
- /**
- * 是否需要发货
- * @var int
- */
- public $needSend;
- /**
- * 运费类型
- * @var int
- */
- public $freightType;
- /**
- * 自动涨价
- * @var int
- */
- public $autoRise;
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- // 必填字段验证
- [['name'], 'required', 'message' => '请填写商品名称'],
- [['priceType'], 'required', 'message' => '请选择价格类型'],
- [['catIds'], 'required', 'message' => '请选择商品分类'],
- ['weight', 'required', 'message' => '请填写重量'],
- // 默认值设置
- ['price', 'default', 'value' => 0],
- ['flowerNum', 'default', 'value' => 0],
- ['sold', 'default', 'value' => 0],
- ['catIds', 'default', 'value' => []],
-
- // 数据类型验证
- [['name', 'cover'], 'string'],
- [['flowerNum', 'stock'], 'integer'],
- ['priceType', 'in', 'range' => [0, 1]],
- ['price', 'number', 'min' => 0, 'message' => '商品价格必须大于或等于0'],
- ['flowerNum', 'number', 'min' => 0, 'message' => '花朵数量必须大于或等于0'],
- ['weight', 'number', 'min' => 0, 'message' => '重量必须大于或等于0'],
- ['sold', 'integer', 'min' => 0, 'message' => '已售数量必须大于或等于0'],
- [['stockSet'], 'in', 'range' => [0, 1]],
- [['needSend'], 'in', 'range' => [0, 1]],
- [['freightType'], 'in', 'range' => [0, 1]],
- [['status'], 'in', 'range' => [0, 1]],
- [['autoRise'], 'in', 'range' => [0, 1]],
- // 添加条件验证
- // ['price', 'required', 'message' => '请填写商品价格', 'when' => function($model) {
- // return isset($_POST['priceType']) && $_POST['priceType'] == '1';
- // }],
-
- // 数组类型验证
- [['shopImg'], 'validateShopImg'],
-
- // 其他业务规则验证
- [['flowerNum'], 'number', 'min' => 0, 'message' => '花朵数量必须大于或等于0'],
- ];
- }
- /**
- * 验证商品图片
- * @param string $attribute 属性名
- * @param array $params 参数
- */
- public function validateShopImg($attribute, $params)
- {
- if (!empty($this->$attribute) && !is_array($this->$attribute)) {
- $this->addError($attribute, '商品图片格式不正确');
- }
- }
- /**
- * 获取属性标签
- * @return array
- */
- public function attributeLabels()
- {
- return [
- 'name' => '商品名称',
- 'price' => '商品价格',
- 'kindId' => '商品种类ID',
- 'kindName' => '商品种类名称',
- 'flowerNum' => '花朵数量',
- 'shopImg' => '商品图片',
- 'cover' => '商品封面图',
- 'stock' => '商品库存',
- 'spu' => '商品编码',
- 'autoRise' => '自动涨价',
- ];
- }
- }
|