您的位置:首页 > 编程语言 > PHP开发

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

2015-04-03 17:23 375 查看
对于一些特殊的数据,处理,使用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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐