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;
}
\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;
}
相关文章推荐
- mongo 对数据很严格 在使用组装条件的时候需要注意 字段的类型, 分享几个转换的函数
- ORACLE判断哪儿儿写数据字符串类型字段不能转换成日期格式
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(6):服务器端和客户端数据类型的自动转换:复杂类型
- SQL通过字段类型转换,达类似加密效果
- 解决hibernate中不能正常使用blog类型字段上传数据的问题
- ASP.NET AJAX客户端编程之旅(三)——让JavaScript和C#无障碍沟通:数据类型自动转换&序列化(转载)
- 数据类型转换,自动转换和强制类型转换实例
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(8):服务器端和客户端数据类型的自动转换:数组类型
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- 更新数据库所有表的某一个指定字段 ,附加对‘将 varchar 值转换为数据类型为 int 的列时发生语法错误’处理方法
- 用SQL语句将一字段的ntext数据类型,转换成Nvarchar数据类型,其他类型的方法类似
- [SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
- 数据仓库自动抽取:通过 SQL Server 企业管理器中的数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- NET 2005 中通过TryParse来检验和转换数据类型。
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(9):服务器端和客户端数据类型的自动转换:DataTable和DataSet
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(5):服务器端和客户端数据类型的自动转换:基本类型和枚举类型
- ASP.NET AJAX客户端编程之旅(三)——让JavaScript和C#无障碍沟通:数据类型自动转换&序列化
- nvelocity模版数据类型自动转换的问题