yii2 Ecommerce 特殊字段的mongo数据处理。不能通过info配置自动转换类型的数据

对于一些特殊的数据,处理,使用info配置不能满足的时候,只能在save方法里面单独处理了

\common\models\core\CMongodb

# 对表:catalog_product的处理

if($this->_collection_name == "catalog_product"){
			$store = CConfig::param("store");
			
			if($data['price']){
				foreach($store as $store_name=>$v){
					if($data['price'][$store_name."_price"]){
						$data['price'][$store_name."_price"] =  floatval($data['price'][$store_name."_price"]);
					}
				}
			}
			
			if($data['special_price']){
				foreach($store as $store_name=>$v){
					if($data['special_price'][$store_name."_special_price"]){
						$data['special_price'][$store_name."_special_price"] =  floatval($data['special_price'][$store_name."_special_price"]);
					}
				}
			}
			
			if($data['special_from_date']){
				foreach($store as $store_name=>$v){
					$dd = $data['special_from_date'][$store_name."_special_from_date"];
					if(!isset($dd->sec)){
						if($dd && ($dd!=null) && ($dd !="null")  && $dd!=NULL  ){
							$data['special_from_date'][$store_name."_special_from_date"] =  new \MongoDate(strtotime($data['special_from_date'][$store_name."_special_from_date"]));
						}
					}
				}
			}
			
			if($data['special_to_date']){
				foreach($store as $store_name=>$v){
					$dd = $data['special_to_date'][$store_name."_special_to_date"];
					
					if(!isset($dd->sec)){
						if($dd && ($dd!=null) && ($dd !="null") && $dd!=NULL ){
							$data['special_to_date'][$store_name."_special_to_date"] =  new \MongoDate(strtotime($data['special_to_date'][$store_name."_special_to_date"]));
						}
					}
				}
			}
		}


取出
的时候,写一个独立的函数,然后,所有的取值都从这个函数取值:

# 得到store 特价开始时间
	public static function  getStoreSpecialFromDate($product,$store=''){
		$special_from_date = Store::getStoreAttrByOb($product,"special_from_date",$store);
		if($special_from_date){
			if(isset($special_from_date->sec)){
				$special_from_date = $special_from_date->sec;
			}
		}
		if($special_from_date){
			return date("Y-m-d",$special_from_date);
		}else{
			return '';
		}
	}
	
	# 得到store 特价结束时间
	public static function  getStoreSpecialToDate($product,$store=''){
		$special_to_date = Store::getStoreAttrByOb($product,"special_to_date",$store);
		if($special_to_date){
			if(isset($special_to_date->sec)){
				$special_to_date = $special_to_date->sec;
			}
		}
		if($special_to_date){
			return date("Y-m-d",$special_to_date);
		}else{
			return '';
		}
		//return $special_to_date;
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值