Php 使用基于FK的类从PDO类获取

Php 使用基于FK的类从PDO类获取,php,mysql,class,pdo,foreign-keys,Php,Mysql,Class,Pdo,Foreign Keys,我使用PDO从数据库中获取数据。我有实体(带有getter和setter的类)和从daatbase获取数据的存储库,就像我有一个类帐户并在AccountRepository中使用SELECT一样,它返回Account对象(感谢PDO和它的setFetchMode(PDO::FETCH_class,Account::class)) 但在表accounts中的数据库中,我还有一个外键(Currency_id)来定义Currency类。如何使用PDO将这两个类组合到某个对象中,以便使用$Account

我使用PDO从数据库中获取数据。我有实体(带有getter和setter的类)和从daatbase获取数据的存储库,就像我有一个类帐户并在AccountRepository中使用SELECT一样,它返回Account对象(感谢PDO和它的
setFetchMode(PDO::FETCH_class,Account::class)

但在表accounts中的数据库中,我还有一个外键(Currency_id)来定义Currency类。如何使用PDO将这两个类组合到某个对象中,以便使用$Account->getCurrency()->getName()之类的东西


我想到的唯一解决方案是使用组合选择和编写自己的数据映射器从数据库中获取原始数据,该映射器用于名为AccountCurrencyCombined的新对象。这是唯一的解决办法吗?我想要得到更复杂的SQL,请选择我将使用更多实体的位置。我真的必须为每个选择编写自己的映射器吗?谢谢。

正如您在这里看到的,您在这里添加了一个带有内部联接的SELECT,您必须使类适应新的列。对于初学者来说,当您实际动手时,它是相当有限的。您最好获取一个数组并将其馈送到类/对象中。您可以有一个1的接收器/聚合器对象。将数据与表2上的信息一起输入。查阅tables@objects相关性,和3。创建特定于数据的对象并承载/返回它们。您不需要单独指定每个可能的组合,但您必须让聚合器对象可以使用它们各自的规范。这是一个公平的问题,但答案并不简单。您正在寻找的是所谓的ORM,您最好的选择是使用现有的ORM。