Cakephp3将多个Mysql表标准化为一个模型表/实体


Cakephp3 Standardize Multiple Mysql Tables into 1 Model Table/Entity

好的,我们正在尝试建立一个中心站点来查看来自销售我们产品的多个供应商的数据。这些多个供应商使用不同的销售系统(确切地说是两个不同的系统),因此每个数据库看起来完全不同。我们与他们的数据库同步,以便数据位于我们的本地服务器上。我们有3个供应商使用一个系统,2个供应商使用另一个系统。我们需要的是一种方法,以同样的方式计算结果。

以下是两个系统的示例:

System-1
     Customers =>[
         id, firstname, lastname, address
     ],
     Transactions =>[
         id, cost, paid, customer_id
     ]
System2
     Customers =>[
         id, NAMEFIRST, NAMELAST, AddressNumber, AddressString, AddressZip
     ],
     Transactions=>[
         id, COST, PAID, CUSTOMER_ID
     ]

我根本无法更改数据库。无论是哪个数据库,我都希望能够回显$this->Transaction->address。这可能吗?

您可以使用实体属性访问器:http://book.cakephp.org/3.0/en/orm/entities.html#accessors-突变

class Customer extends Entity {
    protected function _getFirstname($name) {
        if ($name === null && isset($this->NAMEFIRST)) {
           return $this->NAMEFIRST;
        }
        return $name;
    }
}