纯粹出于好奇,谁能快速告诉我这是否可能?我没有这样做,但回头看,我想知道它是否可以做到。场景如下:
产品、服务的表以及两者定义成本之间的关系表
Product ID | Name 1 | Product A 2 | Product B Service ID | Name 1 | Service A 2 | Service B 3 | Service C Price ID | Cost | Product ID | Service ID 1 | 1 | 1 | 1 2 | 2 | 1 | 3 3 | 3 | 2 | 2 4 | 4 | 2 | 3
如果有表数据对象,就会有:
- 类产品的属性:id,名称,服务数组。
- 类服务有属性:id,名称,成本
//$query = obtain a list of all products with services and prices;
//$query = obtain a product and all it's associated services and prices;
$statement = $pdo->prepare($query);
$statement -> execute();
$results = $statement ->fetchAll(PDO::FETCH_CLASS,"Product");
PDO似乎不支持将任何关系数据嵌套到给定对象中。请查看fetch的文档。您可以构建将产品关系加载到product类本身所需的逻辑,并手动调用它。
由于PDO在__construct()
之前注入了类属性的值,您可能能够在构造函数中实现一些巫术,但我不太确定。
无论哪种方式,这都是实体ORM层可以提供的典型功能之一。有些人就在那里