对于一些特殊的数据,处理,使用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;
}