Mage_Sales_Model_Quote::setCustomer方法,有这么一行代码

Mage::helper('core')->copyFieldset('customer_account', 'to_quote', $customer, $this);

看下实现Mage_Core_Helper_Da

ta::copyFieldset

  $fields = Mage::getConfig()->getFieldset($fieldset, $root);
if (!$fields) {
return false;
} $sourceIsArray = is_array($source);
$targetIsArray = is_array($target); $result = false;
foreach ($fields as $code=>$node) {
if (empty($node->$aspect)) {
continue;
} if ($sourceIsArray) {
$value = isset($source[$code]) ? $source[$code] : null;
} else {
$value = $source->getDataUsingMethod($code);
} $targetCode = (string)$node->$aspect;
$targetCode = $targetCode == '*' ? $code : $targetCode; if ($targetIsArray) {
$target[$targetCode] = $value;
} else {
$target->setDataUsingMethod($targetCode, $value);
} $result = true;
}

先从配置中读取global/fieldsets/相应的节点,每个节点的格式为key为源对象中的属性名,v为配置;以下为一个实例

<prefix>
<create>1</create>
<update>1</update>
<name>1</name>
<to_quote>customer_prefix</to_quote>
<to_order>customer_prefix</to_order>
</prefix>

从源对象或数组中拷贝,如果是数组,则用key,对象则用相应的get方法,如tax_class_id,则方法为getTaxClassId

Magento中数据拷贝一实现的更多相关文章

  1. 【docker】将容器中数据拷贝到主机

    参考:http://blog.csdn.net/yangzhenping/article/details/43667785 docker cp <containerId>:/file/pa ...

  2. sql语句将一个表的数据拷贝到另一个表中

    假定有一个a表,一个b表,要将a表的数据拷贝到b表中. 1.如果a表和b表结构相同. insert into b select * from a; 2.如果a表和b表的结构不相同. insert in ...

  3. 代码实现将键盘录入的数据拷贝到当前项目下的text.txt文件中,键盘录入数据当遇到quit时就退出

    package com.looaderman.test; import java.io.FileNotFoundException; import java.io.FileOutputStream; ...

  4. docker数据拷贝

    docker数据拷贝的方式有很多种,下面介绍几种数据拷贝的方式:此处只是介绍几种简易的方式,更多方式可以google下. 从容器中向主机拷贝数据 docker cp <containerId&g ...

  5. Hive中数据的加载和导出

    原文:http://blog.javachen.com/2014/06/09/hive-data-manipulation-language.html 关于 Hive DML 语法,你可以参考 apa ...

  6. Linux中“零拷贝”

    服务器响应一个http请求的步骤 把磁盘文件读入内核缓冲区 从内核缓冲区读到内存 处理(静态资源不需处理) 发送到网卡的内核缓冲区(发送缓存) 网卡发送数据 数据从第一步中的内核缓冲区到第四步的内核缓 ...

  7. magento中Model创建以及该Model对于数据库的增删改查

    本文是按照magento英文文档照做与翻译的. Model层的实现是mvc框架的一个巨大的部分.它代表了你的应用的数据,或者说大多数应用没有数据是无用的.Magento的Model扮演着一个重要的角色 ...

  8. [转载]JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  9. Magento 中一个订单的“生命历程”

    当我们在网上愉快的买买买的时候, 你知道在这些屏幕“背后”正在进行着什么吗? 1. 当一个产品被加入到购物车后, 实际上发生了什么? 当第一个产品被加入到购物车, 系统首先会生成一个 quote (q ...

随机推荐

  1. 笔记:Xshell、更新源、安装软件

    一.Xshell首次连接kali系统中的ssh 1.Xshell :帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp). 2.步骤: step1:开启kali中的ssh ...

  2. idea配置opencv

    参考:https://blog.csdn.net/sinat_38102206/article/details/81156589 配置运行时参数.通过菜单“Run->Edit Configura ...

  3. git 常规操作 windows版

    首先在本地建立好文件夹,然后初始化git仓库: git init 接下来在github上面克隆项目: git clone 这里写你的项目地址 然后就可以修改,删除,提交代码了  如果需要在新分支上面开 ...

  4. WordCount( Java )

    Github项目地址:https://github.com/Sabot1203/WordCount 一. 题目描述 实现一个简单而完整的软件工具(源程序特征统计程序). 进行单元测试.回归测试.效能测 ...

  5. Better Key Sizes (and Attacks) for LWE-Based Encryption

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文 Abstract 基于“learning with errors”(LWE)问题,分析了理 ...

  6. latex:公式的序号

    1.排序单位 在文类book或report中,行间公式是以章为排序单位的,即每一新章节开始,公式序号计数器equation就被清零.比如第1章第3个公式的序号是(1.3),第2章第1个公式的序号是(2 ...

  7. C++字符串与指针

    字符串初始化 在C++中基本数据类型并不包括string,string类型其实是一种类类型,通过STL函数库中的模板类basic_string 实例化得到. int main () { // stri ...

  8. C语言中存储多个字符串的两种方式

    C语言中存储多个字符串的两种方式 方式一    二维字符串数组 声明: char name[][] = { "Justinian", "Momo", " ...

  9. GitHub 热点速览 Vol.35:Let's Go,Rust 大放异彩

    摘要:语言之争,一直存在于各类社群,不论是单个编程语言的交流群,亦或是 NoSQL.云开发等技术群,总能看到"要不要换 Go"."Rust 比 C++ 更强"的 ...

  10. windows版redis报错:本地计算机上的Redis服务启动后停止

    解决 1.如果需要临时启动Redis 使用命令:redis-server.exe   redis.windows.conf   --maxheap 200m 说明:200m是指定最大堆内存是200m, ...